データベースの各ユーザーごとに毎日登録フォームを作成するPHPループを作成しました。各フォームには1つのdivがあり、これにはさまざまなドロップダウンが含まれています。これは、その日に提出されたものを示すものの上に直接配置されます。ドロップダウンボックスの1つが選択されると、jQueryを使用してトップdivを消し、下のdivに回答を表示しています。間違えた場合、xをデータベースに入れるリセットボタンがあります。PHPループで個々のIDを作成する方法
また、毎日各ユーザーの最新の入力を確認するPHPクエリを作成しました(xか、その日に登録されたものかどうか)。これはトップdivにdivにエコーされます(私はそれを隠すためにCSSを使います)。
誰かがページを読み込んだときに、すでにその日に登録されている人々が表示されるようにしたいと思っています。私は文字列の長さが> 2の誰かのためにトップdivを隠す関数を持ってこれをしたいと思います。私はこれを行うために複数の方法を試みましたが、動作するようにはできません。一意のIDを作成してjQueryに転送する方法はありますか?
私はこれまでの内容を示す以下のコードの簡略化されたバージョンを添付しました。どんな助けでも本当に感謝しています。
私はカウンタを使ってみましたが、間違って実装したと思います。私はユニークなIDを呼び出すことができるように誰もそれを修正する方法を見ることができますか?ここに私が試したスクリプトがあります。
<script>
$(document).ready(function() {
if ($("#needed<?= $i ?>").text().length > 3) {
$("#needed<?= $i ?>").parentsUntil(".submitted").addClass("hidediv");
$("#needed<?= $i ?>").parentsUntil(".submitted").removeClass("showdiv");
}
});
<!DOCTYPE html>
<html>
<head>
<?php include 'dbconnection.php'; ?>
<link href="hidphptest.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$(".cars").change(function(){
$(this).parentsUntil(".submitted").addClass("hidediv");
$(this).parentsUntil(".submitted").removeClass("showdiv");
});
});
</script>
<script>
$(document).ready(function(){
$(".go45").click(function(){
$(this).siblings().addClass("showdiv");
$(this).siblings().removeClass("hidediv");
});
});
</script>
<script>
$(document).ready(function() {
if ($("#needed<?= $i ?>").text().length > 3) {
$("#needed<?= $i ?>").parentsUntil(".submitted").addClass("hidediv");
$("#needed<?= $i ?>").parentsUntil(".submitted").removeClass("showdiv");
}
});
</script>
<body>
<br>
<form method="post" action="testplace3.php">
<select name="classu" >
<option disabled="disabled" selected="selected">Select Class</option>
<?php
$selectclass=$connect->query("SELECT DISTINCT class FROM `firstnametest` ");
while($rows=$selectclass->fetch_array())
{
?>
<option value="<?php echo $rows['class']; ?>"><?php echo $rows['class']; ?>
</option>
<?php
}
?>
<input type="submit" value="Add Group" style="width: 317px; height: 45px"/>
</select>
</form>
<?php
$query=mysqli_query($connect,"SELECT * from firstnametest where class =
'group1'");
// Initiate counter variable
$i = 1;
while ($row=mysqli_fetch_array($query))
{
?>
<div class="submitted ">
<button id="butest" type="button" class="go45 btn btn-info " value="<?php
echo$row["id"]; ?>">Go Back</button>
<div class="todo "><br><span id="needed<?= $i ?>"><?php
echo$row["surname"]; ?></span><br>
<select class="cars" >
<option disabled="disabled" selected="selected">Group </option>
<option value="Group 1">Group 1</option>
<option value="Group 2">Group 2</option>
<option value="Group 3">Group 3</option>
<option value="Group 4">Group 4</option>
</select>
<br>
<div >
</div>
</div>
</div>
<!-- Counter increment -->
<?php
$i++;
}
?>
</body>
</html>
'$ i'はどこに設定または更新されていますか? –
なぜそれを間違って実装したと思いますか?希望の行動とは対照的に、あなたはどのような行動を観察していますか? – coderodour
あなたは '$ groupder'を何でも設定することは決してありません。あなたがいるなら、あなたは[** SQLインジェクション**](https://en.wikipedia.org/wiki/SQL_injection)攻撃の脆弱性が高いでしょう。あなたは[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https ://secure.php.net/manual/en/pdo.prepared-statements.php)ドライバ。 [**この記事**](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)には、いくつかの良い例があります。 –