2016-11-09 88 views
1

我想根据创建JavaScript运行JavaScript的建议基于PHP的循环中的输入,这是我的JavaScript代码,基于PHP的循环

<script> 
    $(function() { 
     var availableTags = [ 
      <?php do { ?> "<?php echo $row_style['style']; ?>", <?php } 
      while($row_style = mysql_fetch_assoc($style)); ?>]; 

     $("#style").autocomplete({ source: availableTags }); 
    }); 
</script> 

这是我的HTML代码,

<html> 
    <table> 
     <tr><td>no</td><td>style</td></tr> 
     <?php $no=1; for ($i=1; $i<=4; $i++){?> 
     <tr><td><?php echo $no++ ?></td><td><input name="style" type="text"></td></tr> 
     <?php } ?> 
    </table> 
</html> 

它的工作第一行,但不是第二,三或四, 我的代码是怎么回事?

+0

您使用的是相同的ID #style。如果你想要更多元素,你必须使用唯一标识符 – krasipenkov

+0

如何在php循环中创建id #style与id样式相同? – nukman

回答

0

这里是一个解决方案:

<?php 
$style = ''; 
while($row_style = mysql_fetch_assoc($style)) { 
    $style .= $row_style['style'].','; 
} 
$style = rtrim($style, ','); 
?> 

<script> 
$(function() { 
    var availableTags = [<?php echo $style;?>]; 
    <?php for ($i=1; $i<=4; $i++){?> 
    $("#style<?php echo $i;?>").autocomplete({ source: availableTags }); 
    <?php }?> 
}); 
</script> 

<html> 
<table> 
    <tr><td>no</td><td>style</td></tr> 
    <?php $no=1; for ($i=1; $i<=4; $i++){?> 
     <tr><td><?php echo $no++ ?></td><td><input id="style<?php echo $i;?>" name="style" type="text"></td></tr> 
    <?php } ?> 
</table> 
</html> 

'#style' 替换为 '.style'。

而且你的JS数组结束“”,所以现在结束昏迷修剪