2017-07-25 31 views
1

我開發了一個PHP循環,爲我的數據庫中的每個用戶每天創建一個註冊表單。每個表格都有一個div,其中包含各種下拉菜單,並且直接放置在顯示當天提交內容的div上。當選擇其中一個下拉框時,我已經使用jQuery使頂部div消失,並在下面的div上顯示答案。如果出現錯誤,那麼會有一個重置按鈕,將x放入數據庫中。如何在PHP循環中創建個人ID

我也創建了一個PHP查詢,可以爲每個用戶每天查找最新的輸入(不論是x或他們當天註冊的內容)。然後將這個回覆到頂部div的div(我使用CSS來隱藏它)。

我想要發生的事情是,當有人加載頁面時,它會顯示當天已經註冊的人員。我想通過一個隱藏頂部div的函數來處理任何字符串長度大於2的人。我已經嘗試了多種方式來做到這一點,但不能得到任何工作。有沒有辦法創建唯一的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()位的作品,但您所創建的代碼有一個#needed,當由PHP生成的頁面,$ i是空如何。所以我猜想它只能在#needed div上工作。您可能需要遍歷所有div,並將它們全部隱藏在函數()中。

+0

$ i = 1 when腳本啓動,然後每次迭代都會增加 – bevan7

+0

我知道這是你的意圖,但是這一小段代碼只會在頁面生成時寫入一次,PHP只會在頁面創建時才運行。已被加載。 – zefram