我很难使用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]);
}
});
答案 0 :(得分: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]);
}
});
答案 1 :(得分: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]);
}
});