基于PHP的循环运行javascript


running javascript on php based loop

我想创建基于JavaScript的建议输入基于php的循环,这是我的JavaScript代码,

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

它在第一行工作,但不是第二,第三或第四行,我的代码发生了什么?

解决方案:

<?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数组以','结尾,所以现在结束的逗号被修剪