2016-08-04 69 views
0

我想在以下while循环中使用Javascript,但它只适用于第一次迭代。从阅读其他文章,我有一种感觉,它与ID的事情有关,但我真的不明白。让Javascript在PHP中工作while循环

继承人我的代码:

<html> 
<head> 


</head> 

<body> 

<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script> 

<style type="text/css"> 
     #wrapper { 
     background: #ccc; 
     display:none 
     } 
</style> 

<script type="text/javascript">//<![CDATA[ 
$(window).load(function(){ 
$('#button').click(function(){ 
    $('#wrapper').toggle(); 
}) 
});//]]> 
</script> 

<?php 
$x = 5; 
while($x > 0) 
{ 
?> 
<button id="button">ExP</button> 
<div id="wrapper" class="open" style="display: none;"> 
    <ul id="list"> 
    <li>Item</li> 
    </ul> 
</div> 
<?php 
$x = $x-1; 
} 
?> 

</body> 
</html> 

任何建议非常赞赏。

谢谢:)

+4

PHP是服务器端,JavaScript是客户端 - 两者不能相互影响......不过,在看了你的代码,有PHP while循环内没有JavaScript,因此在问题是误导!!! ...问题实际上是ID的**必须在HTML页面中是唯一的** –

回答

0

使用类,而不是身份证。

</head> 

<body> 

<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script> 

<style type="text/css"> 
     .wrapper { 
     background: #ccc; 
     display:none 
     } 
</style> 

<script type="text/javascript">//<![CDATA[ 
$(window).load(function(){ 
$('.button').click(function(){ 
    $(this).next('.wrapper').toggle(); 
}) 
});//]]> 
</script> 

<?php 
$x = 5; 
while($x > 0) 
{ 
?> 
<button class="button">ExP</button> 
<div class="wrapper" class="open" style="display: none;"> 
    <ul id="list"> 
    <li>Item</li> 
    </ul> 
</div> 
<?php 
$x = $x-1; 
} 
?> 

</body> 
</html> 
+0

这几乎是解决方案,谢谢大家的帮助。 – por

0

ID是唯一的:

  • 一个元素只能有一个ID
  • 一页可以与ID只有一个元素

你可以用” t使用$('#button')$('#wrapper'),因为它们不是唯一的。

例如,您可以使用button0,button1button5等作为ID。例如:

<button id="button<?php echo $x; ?>"> 

您也可以使用类而不是ID,因为它们不需要是唯一的。

同样为list

0

正如在评论中提到的,你需要唯一的ID。 另外,您可以使用类来解决这个问题

\t $(function() { 
 
\t \t $('.button').on('click', function(e) { 
 
\t \t \t e.preventDefault(); 
 
\t \t \t $(this).next().toggle(); 
 
\t \t }); 
 
\t });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<?php 
 
\t for($i=0;$i<5;$i++) { 
 
?> \t 
 
\t <button class="button">ExP</button> 
 
\t <div style="display: none;"> 
 
\t \t <ul> 
 
\t \t \t <li>Item</li> 
 
\t \t </ul> 
 
\t </div> 
 
<?php 
 
\t } 
 
?>