AJAX成功时将多个PHP数组传递给JavaScript
我很难使用AJAX请求将数组从PHP页面传递到JavaScript 我必须将信息从多个php数组传递到javascript。我知道我可以使用json_编码来实现这一点,但是,我很难实现这一点。AJAX成功时将多个PHP数组传递给JavaScript,php,javascript,ajax,Php,Javascript,Ajax,我很难使用AJAX请求将数组从PHP页面传递到JavaScript 我必须将信息从多个php数组传递到javascript。我知道我可以使用json_编码来实现这一点,但是,我很难实现这一点。$name数组似乎没有被传递,此外,我需要将所有数组传递给javascript,而不仅仅是$name 我很感激你对我的建议 非常感谢 这就是我试图传递$name数组(代码片段)的原因: PHP 阿贾克斯 $i在while循环中似乎没有更改,因此最后一个值不断被新值覆盖。您可以使用: $name = arra
$name
数组似乎没有被传递,此外,我需要将所有数组传递给javascript,而不仅仅是$name
我很感激你对我的建议
非常感谢
这就是我试图传递$name
数组(代码片段)的原因:
PHP
阿贾克斯
$i在while循环中似乎没有更改,因此最后一个值不断被新值覆盖。您可以使用:
$name = array(); //setup array
while($row2 = mysqli_fetch_array($results2)){
$name[] = $row2['prod_name']; //add to the end of the array
}
echo json_encode($name);
您还可以使用“die”来回显html代码,以确保在die(json_encode($name))之后不会执行任何其他操作代码>
jquery返回变量data
,因此使用data
:
$.ajax({
url: "invoice-get-data.php?hotItems=1&getArrays=1",
dataType: "json",
success: function(data){
alert(data[0]);
}
});
后端:
while($row2 = mysqli_fetch_array($results2)){
$name[] = $row2['prod_name'];
$price[] = $row2['price'];
$upc[] = $row2['upc'];
$quantity[] = $row2['quantity'];
}
echo json_encode(array($name, $price, $upc, $quantity));
前端:
$.ajax({
url: "invoice-get-data.php?hotItems=1&getArrays=1",
dataType: "json",
success: function(data){
data = JSON.parse(data);
alert(data[0]);
}
});
谢谢你的回复。不,$i不是常量,这些只是代码片段。或者只添加$row2作为一个整体,而不是单独数组中的所有元素。@AnchovyLegend恕我直言,如果您总结,至少要总结到一个工作示例中。您发布的代码至少包含2个与您的问题无关且显然与您的“代码片段”相关的bug。为什么此答案被否决,它似乎正确地回答了问题感谢您的编辑,即使在这些修改之后,仍然没有收到任何警报,也没有产生任何错误:/Any建议?什么是警报(数据)
gives<代码>未定义
?您发出了警告名称[0]
,但您将信息的成功返回分配给数据
。@ArtyomNeustroev,感谢您的回复。没有收到任何警报,也没有错误消息…@CaseyFlyn,谢谢你的回复。这些只是代码片段,我也从未定义过$results2
或任何数组。请假设它们都已定义并正在工作,发布的代码只涉及从php到javascript的数组传递。@AnchovyLegend我们不能假设任何东西,因为您没有显示足够的代码正在工作。如果它们只是代码片段,并且您认为它们应该可以工作,那么请显示您的实际代码,以便正确查看。谢谢您的回复。但是,没有收到任何警报,也没有错误消息。@AnchovyLegend这是因为,在成功时,您再次将返回值分配给data
,但尝试警报name
,这是未分配的。@Jon,所描述的问题是在将name
更改为data
之后。不过,谢谢@zavg,即使在添加了JSON.parse
@AnchovyLegend之后,仍然没有收到任何警报,也没有错误。当您将AJAX请求的URL放入URL时会发生什么?你得到了什么输出?在你的问题中表现出来?
while($row2 = mysqli_fetch_array($results2)){
$name[] = $row2['prod_name'];
$price[] = $row2['price'];
$upc[] = $row2['upc'];
$quantity[] = $row2['quantity'];
}
echo json_encode(array($name, $price, $upc, $quantity));
$.ajax({
url: "invoice-get-data.php?hotItems=1&getArrays=1",
dataType: "json",
success: function(data){
data = JSON.parse(data);
alert(data[0]);
}
});