AJAX成功时将多个PHP数组传递给JavaScript

AJAX成功时将多个PHP数组传递给JavaScript,php,javascript,ajax,Php,Javascript,Ajax,我很难使用AJAX请求将数组从PHP页面传递到JavaScript 我必须将信息从多个php数组传递到javascript。我知道我可以使用json_编码来实现这一点,但是,我很难实现这一点。$name数组似乎没有被传递,此外,我需要将所有数组传递给javascript,而不仅仅是$name 我很感激你对我的建议 非常感谢 这就是我试图传递$name数组(代码片段)的原因: PHP 阿贾克斯 $i在while循环中似乎没有更改,因此最后一个值不断被新值覆盖。您可以使用: $name = arra

我很难使用AJAX请求将数组从PHP页面传递到JavaScript

我必须将信息从多个php数组传递到javascript。我知道我可以使用json_编码来实现这一点,但是,我很难实现这一点。
$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]);
    }
});