我有点困惑,为什么我没有得到这个结果......
<?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>');
}
答案 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创建一个类,并使其成为私有函数。