2016-08-04 2 views
0

Я пытаюсь использовать Javascript в следующем цикле while, но только применительно к первой итерации. От чтения других сообщений у меня есть чувства, что у него есть что-то общее с идентификаторами, но я этого не понимал.Получение Javascript для работы в PHP во время цикла

Heres мой код:

<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

РНР на стороне сервера, браузер на стороне клиента - они не могут взаимодействовать ... Однако, посмотрев на свой код, нет Javascript внутри PHP в то время как петли, так что вопрос вводит в заблуждение !!! ... проблема в том, что идентификаторы ** должны быть уникальными ** на странице 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
  • Одна страница может иметь только один элемент с таким идентификатором

Вы можете» t используйте $('#button') или $('#wrapper'), поскольку они не уникальны.

Вы можете использовать, например, button0, button1, button5 и т. Д. Как ID. Например:

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

Вы также можете использовать классы вместо идентификаторов, поскольку они не обязательно должны быть уникальными.

То же самое касается list.

0

Как указано в комментариях, вам нужны уникальные идентификаторы. В качестве альтернативы вы можете использовать классы, чтобы исправить эту

\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 } 
 
?>

Смежные вопросы