2016-08-04 13 views
0

Ich versuche Javascript in der folgenden while-Schleife zu verwenden, aber es gilt nur für die erste Iteration. Vom Lesen anderer Beiträge habe ich ein Gefühl, dass es etwas mit IDs zu tun hat, aber ich habe es nicht wirklich verstanden.Getting Javascript in PHP zu arbeiten, während Schleife

Heres mein Code:

<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> 

Irgendwelche Vorschläge sehr geschätzt.

Thanks :)

+4

php Server-Seite ist, Javascript ist Client-Seite - die beiden ... aber nicht in Wechselwirkung treten können, um Ihren Code sah zu haben, gibt es keine Javascript innerhalb der PHP-while-Schleife, so dass die Frage ist irreführend !!! ... das Problem ist eigentlich, dass IDs ** in einer HTML-Seite eindeutig sein müssen –

Antwort

0

Gebrauchsklasse zu beheben.

</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

Dies ist so ziemlich die Lösung, danke an alle für Ihre Hilfe. – por

0

IDs sind einzigartig:

  • Ein Element
  • nur eine ID haben kann
  • Eine Seite nur ein Element mit dieser ID

Sie können‘haben t verwenden Sie $('#button') oder $('#wrapper'), da sie nicht eindeutig sind. Sie können zum Beispiel button0, button1, button5 usw. als IDs verwenden. Zum Beispiel:

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

Sie könnten auch Klassen anstelle von IDs verwenden, da sie nicht eindeutig sein müssen.

Gleiches gilt für list.

0

Wie in den Kommentaren erwähnt, benötigen Sie eindeutige IDs. Alternativ können Sie Klassen verwenden diese anstelle von 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 } 
 
?>