我正在尝试将我的产品表存储在一个数组中,并使用JSON将其传递给jQuery,然后使用jQuery和HTML将其显示给用户。
用于填充数组的php代码
$sql= "SELECT * FROM XXXXXXXXX";
$result = mysqli_query($link, $sql);
while($item = mysqli_fetch_array($result)){
$array[] = $item;
}
echo json_encode($array);
用于读取数组的jQuery代码
jQuery.parseJSON(msg);
var output = jQuery.parseJSON(msg);
for(var index=0;index<output.length; index++){
var itmnam = output[index][1];
var itmpic = output[index][2];
var itmpr = output[index][3];
var itmdisc = output[index][4];
var itmdesc = output[index][5];
var itmshp = output[index][6];
var itmav = output[index][7];
var htmlstring ="-"+itmnam+"-"+itmpic+"-";
$('#shpop').html(htmlstring);
}
$("#shpcart").fadeIn();
});
问题是浏览器只打印数组的最后一行
这是什么问题?我怎样才能显示所有行?
答案 0 :(得分:2)
你在循环中设置html:
$('#shpop').html(htmlstring);
因此,html仅使用最后一行的值
设置但你要追加它(我猜):
var htmlstring = "";
for(var index=0;index<output.length; index++){
var itmnam = output[index][1];
...
var itmav = output[index][7];
htmlstring +="-"+itmnam+"-"+itmpic+"-";
}
$('#shpop').html(htmlstring);
$("#shpcart").fadeIn();
答案 1 :(得分:0)
您可以尝试以下方法:
// Parse out your data
var output = jQuery.parseJSON(msg);
// Save a reference to your cart
var $shop = $('#shpop');
// Iterate your data and pull out the values you need.
$.each(output, function (idx, elem) {
var htmlstring ="-"+itmnam+"-"+itmpic+"-";
$shop.append("-" + elem[1] + "-" + elem[2] + "-");
});
// Fade In animation
$("#shpcart").fadeIn();
这有点精简。希望这会有所帮助。