我必须在AJAX调用时将Javascript arry传递给PHP文件。
下面是我的js数组:
var myArray = new Array("Saab","Volvo","BMW");
这个JS代码必须使用AJAX请求将JS数组传递给PHP文件,并显示数组的计数。
function ProcessAJAXRequest()
{
$.ajax
({
type: "POST",
url: "myphpfile.php",
data: {"id" : 1, "myJSArray" : myArray},
success: function (data)
{
alert(data);
}
});
}
这个myphpfile.php文件必须返回数组的计数
<?php
$myPHPArray = $_POST["myJSArray"];
echo count($myPHPArray);
?>
PHP文件中存在错误。我得到未定义的索引:myPHPArray。应该如何实现我所需要的功能?
答案 0 :(得分:2)
使用JSON.stringify
将值转换为JSON并将其发送到服务器。
data: JSON.stringify({"id" : 1, "myJSArray" : myArray})
答案 1 :(得分:2)
通过JSON.stringify
function ProcessAJAXRequest()
{
$.ajax
({
type: "POST",
url: "myphpfile.php",
data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)},
success: function (data)
{
alert(data);
}
});
}
并在PHP
使用json_decode
函数中获取数组中的值
json_decode($_POST["myJSArray"]);
答案 2 :(得分:1)
您可以使用JSON.stringify(array)
在JavaScript中对数组进行编码,然后使用
$array=json_decode($_POST['jsondata']);
在您的PHP脚本中检索它。请检查此链接
答案 3 :(得分:0)
在我看来,您的数组在功能范围内不可用:
function ProcessAJAXRequest(){
var myArray = new Array("Saab","Volvo","BMW"); // this has to be in fn scope
$.ajax({
type: "POST",
url: "myphpfile.php",
data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)}, // do the stringify before posting
success: function (data){
alert(data);
}
});
}