2017-07-25 10 views
1

データベースの各ユーザーごとに毎日登録フォームを作成する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> 
+2

'$ i'はどこに設定または更新されていますか? –

+1

なぜそれを間違って実装したと思いますか?希望の行動とは対照的に、あなたはどのような行動を観察していますか? – coderodour

+0

あなたは '$ 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)には、いくつかの良い例があります。 –

答えて

0

私は右のそれを読んでいる場合は、あなたのスクリプトは問題です。

<script> 
$(document).ready(function() { 
    if ($("#needed<?= $i ?>").text().length > 3) { 
    $("#needed<?= $i ?>").parentsUntil(".submitted").addClass("hidediv"); 
    $("#needed<?= $i ?>").parentsUntil(".submitted").removeClass("showdiv"); 
} 
}); 
</script> 

私にはわからないどのように$(document).ready(function()ビット動作しますが、ページはPHPによって生成されたときに$ iがnullであるとして、あなたが作成しているコードは、#neededを持っています。だから私はそれが#needed divでのみ動作していると思います。関数内ですべてのdivをループして非表示にする必要があるかもしれません()。

+0

$ i = 1 when whenスクリプトが開始され、各反復ごとにインクリメントされます – bevan7

+0

私はあなたが意図したものだと知っていますが、このコードはページが生成されたときに一度だけ書き込まれ、PHPのページが作成されたときに実行されます。が読み込まれました。 – zefram

関連する問題