0

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

我将不得不将来自多个 php 数组的信息传递给 javascript。我知道我可以为此使用 json_encode,但是,我很难实现这一点。$name数组似乎没有被传递,此外,我需要将所有数组传递给 javascript 而不仅仅是$name.

我很感激对此提出的任何建议。

提前谢谢了!

这是我尝试传递$name数组的方法(代码片段):

PHP

while($row2 = mysqli_fetch_array($results2)){
    $name[$i] = $row2['prod_name'];
    $price[$i] = $row2['price'];
    $upc[$i] = $row2['upc'];
    $quantity[$i] = $row2['quantity'];
}
echo json_encode($name);

AJAX

$.ajax({
    url: "invoice-get-data.php?hotItems=1&getArrays=1",
    dataType: "json",
    success: function(data){
        alert(data[0]);
    }
});
4

2 回答 2

2

后端:

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]);
    }
});
于 2013-04-14T16:53:15.843 回答
0

$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]);
    }
});
于 2013-04-14T16:51:55.300 回答