0

我正在尝试将我的产品表存储在一个数组中并使用 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();
  });

问题是浏览器只打印数组的最后一行

这里有什么问题?如何显示所有行?

4

2 回答 2

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();
于 2013-06-13T13:55:36.487 回答
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();

这有点瘦。希望这可以帮助。

于 2013-06-13T14:15:02.717 回答