2016-09-20 64 views
-2

我有這個切換功能,使列表項目可見和不可見。 沒有變量id它的作品(當然只有第一個打開)。但隨着變量它根本不工作。該變量只是一個數字,添加到列表項ID,這是很好地顯示在HTML代碼中。 這是我具備的功能:jquery與php變量切換不起作用

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script> 
$("#button-" . $row['id'] . "").click(function() { 
$("#bands-" . $row['id'] . "").toggle(); 
}); 
</script> 
<?php 
echo "<a id='button-" . $row['id'] . "'>bands</a>"; 

echo "<li id='bands-" . $row['id'] . "' class='clearfix list-group-item' style='display: none;'></li>"; 
?> 

(相互呼應線是醜了一點,我知道,但它的工作原理:-P)

+1

的可能的複製[什麼是客戶端和服務器端編程之間的區別?](http://stackoverflow.com/questions/13840429/what-is-the-difference-between-client-side-and-server-side-programming) – Epodax

+0

你能向我展示足夠的代碼ndicate $行來自哪裏?你有一段時間或foreach循環某處,目前不包括? –

+0

您是否檢查生成的HTML代碼,如果它看起來應該如何? –

回答

0

你的字符串轉義上JS一邊是錯的,休息應該很好。在PHP方面,這是正確的,因爲你在一串echo

$("#button-<?php echo $row['id']; ?>").click(function() { 
    $("#bands-<?php echo $row['id']; ?>").toggle(); 
}); 
+0

當我改變這個時,我看到腳本函數沒有采用id值。所以我把腳本放在'while($ row = mysql_fetch_array($ result)){'Now it works! –

0

代替生成JavaScript代碼的每一行,你應該編寫一次,並使用data-id屬性來查找相應的項目。

你的JavaScript應該是這樣的:

$(document).on("click", ".bands-button", function() { 
    $("#bands-"+$(this).data("id")).toggle(); 
}); 

而在你的PHP代碼,你把你的行ID的data-id屬性中,而不是id屬性:

echo "<a class='bands-button' data-id='" . $row['id'] . "'>bands</a>"; 
echo "<li id='bands-" . $row['id'] . "' class='clearfix list-group-item' style='display: none;'></li>";