【发布时间】:2021-07-25 01:06:23
【问题描述】:
感谢您点击这个问题,我正在尝试添加一个新功能,每当我点击一个按钮时,它都会将多行项目加载到一个 div 中。
这是我的 div 代码
<div id="add_items_row"></div>
这是按钮
<div class="col-sm-2 add_items">
<button
type="button" id="add_items" name="add_items" class="btn btn-primary"
onclick="add_items()"> <?php echo $add_items_btn; ?>
</button>
</div>
这是函数
function add_items() {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
txt = xmlhttp.responseText;
$(txt).clone().prependTo( "#add_items_row");
}
}
xmlhttp.open("GET", "../php/add_items.php");
xmlhttp.send();
}
这是我的 add_items.php 文件中的代码
$sql = mysqli_query($conn, "SELECT id, item_name, item_qty FROM inventory WHERE active = 1");
while($row = mysqli_fetch_array($sql)){
$item_id = $row['id'];
$item_name = $row['item_name'];
$item_qty = $row['item_qty'];
}
$display_row = '
<div class="col-md-4">
<input type="hidden" class="small form-control" name="item_id[]" value="'.$item_id .'">
<input type="text" class="small form-control" name="item_name[] readonly value="'.$item_name .'">
<input type="text" class="small form-control" name="item_qty[] readonly value="'.$item_qty .'">
</div>
';
echo $display_row;
SQL 语句在我的数据库中运行,它返回多行,但是在页面本身上它只是将一项添加到 add_items_row div 中。
另外,当我打开 add_items.php 页面时,它也只显示一项。
我怀疑问题出在我的 add_items.php 文件或函数中。 感谢那些阅读我的问题的人,我是编程新手,任何见解或建议都会帮助我。
【问题讨论】:
-
你试过用mysql_fetch_assoc($sql)代替mysqli_fetch_array($sql)吗?
-
嗨,在 while 循环中移动
$display_row = '<div class="col..行。另外,在此处添加.以连接结果$display_row .= -
@Anthony - 我同意使用该函数更有意义,但在这种情况下它不应该改变任何东西,因为
mysqli_fetch_array()默认返回 assoc 和数字索引。跨度> -
您尝试过什么解决问题的方法?这是 PHP 问题(数据没有在服务器上正确生成),还是 JS 问题(数据没有在浏览器中正确处理)?
-
嗨 @NicoHaase 起初我不确定问题出在哪里,但由于 Swati 的建议,我现在设法解决了它。最后,正如我所怀疑的那样,这是一个 PHP 问题。我只需要连接并包含 $display_row .= '
标签: javascript php html mysqli