Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';jQuery是否打印整个已解析的PHP数组?_Php_Html_Jquery - Fatal编程技术网

为什么赢了';jQuery是否打印整个已解析的PHP数组?

为什么赢了';jQuery是否打印整个已解析的PHP数组?,php,html,jquery,Php,Html,Jquery,我试图将我的产品表存储在一个数组中,并使用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); 用于读取数组

我试图将我的产品表存储在一个数组中,并使用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();
  });
jQuery.parseJSON(msg);
var output=jQuery.parseJSON(msg);

对于(var index=0;index,您正在循环内设置html:

$('#shpop').html(htmlstring);

因此,html仅使用最后一行的值进行设置

但您想附加它(我猜):

var htmlstring=“”;

对于(var index=0;index,您可以尝试以下替代方法:

// 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();

这稍微精简了一点。希望这能有所帮助。

您在每次迭代中都会覆盖值。您应该查看or…和
jQuery.each()
可能吧……我不想问一个愚蠢的问题,但有什么原因让你提取输出数组中的所有值,但只使用三个值吗?你似乎只使用了
itmnam
itmpic
。没有理由解析所有其他数据。无论如何,一旦退出for循环的范围,你就会丢失它……是的,是的table是一个临时表,用于购物车临时保存…保存所有选定的项目然后检查以下内容:json输出是否正确?输出的
长度是否正确?如果两者都正确,我向您保证我的代码是有效的,也许您的codehtmlstring+=wo中有
htmlstring=
而不是
htmlstring+=
rks,你能给我解释一下htmlstring+=和htmlstring=之间的区别吗?我会很感激:)谢谢男士:-)这个问题已经解决了,但是我有一个新的问题,这个问题已经用索引数组解析了。这个问题已经解决了,谢谢,但是我有另一个关于ajax的新问题。问题是:(请帮我解决这个问题
// 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();