使用javascript添加数据以形成

时间:2018-04-01 21:53:23

标签: javascript php html

我有点困惑,为什么我没有得到这个结果......

<?php
                $link = mysqli_connect('localhost', 'username', 'password', 'database');
                $query = "SELECT id, size, color, quantity FROM `".$searchitem."`";
                $res2 = $link->query ( $query ) or die(mysqli_error($link));
                if ($res2->num_rows > 0) {
                    while ( $row2 = $res2->fetch_assoc () ) {
                        ?>
                        <script>
                            addData(<?php echo $row2["size"]?>, <?php echo $row2["color"]?>, <?php echo $row2["quantity"]?>);
                        </script>
                        <?php
                    }
                }
                ?>

脚本中似乎没有任何效果......

function addData(size, color, quantity){
var i=1;
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><input type="text" name="size[]" placeholder="Size.." value="'+size+'" class="form-control name_list" /><td><input type="text" name="colors[]" placeholder="Colors.." value="'+color+'" class="form-control name_list" /></td><td style="width: 20px;"><input type="number" name="quantity[]" placeholder="Quantity.." value="'+quantity+'" /></td></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');

}

2 个答案:

答案 0 :(得分:0)

确保php代码段最好位于正文的末尾,或者位于#dynamic_field元素之后,因为您可能正在对尚未加载的元素执行javascript。

答案 1 :(得分:0)

在我看来,混合PHP和Javascript并不理想。有两种解决方案。第一:

<div id="dynamic_field">
 <?php
     $link = mysqli_connect('localhost', 'username', 'password', 'database');
     $query = "SELECT id, size, color, quantity FROM '$searchitem'";
     $res2 = $link->query ( $query ) or die(mysqli_error($link));
            if ($res2->num_rows > 0) {
                while ( $row2 = $res2->fetch_assoc () ) {
                   echo $row2["size"]?>, <?php echo $row2["color"]?>, <?php echo $row2["quantity"]?>);
                }
            }
 ?>
</div>

其次,使用以下代码片段包装您的函数,并将整个php代码段放在页面底部。

$(document).ready(function(){
 // put your function here
});

然而,用PHP回显JS函数并不理想,因为在PHP呈现DOM时可能已经下载了JS文件。这意味着addData()可能未定义。

我还强烈建议您在dbConfig中为mysqli_connect创建一个类,并使其成为私有函数。