如何使用AJAX将Javascript数组传递到PHP文件?

如何使用AJAX将Javascript数组传递到PHP文件?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,在调用AJAX时,我必须将Javascript数组传递给PHP文件 下面是我的js数组: var myArray = new Array("Saab","Volvo","BMW"); 此JS代码必须使用AJAX请求将JS数组传递给PHP文件,并将显示数组的计数 function ProcessAJAXRequest() { $.ajax ({ type: "POST", url: "myphpfile.php", data: {"

在调用AJAX时,我必须将Javascript数组传递给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。如何实现所需功能?

用于将值转换为JSON并发送到服务器

data: JSON.stringify({"id" : 1, "myJSArray" : myArray})
用于将值转换为JSON并发送到服务器

data: JSON.stringify({"id" : 1, "myJSArray" : myArray})

通过
json.stringify将js数组转换为json格式

function ProcessAJAXRequest()
{
    $.ajax
    ({
        type: "POST",
        url: "myphpfile.php",
        data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)},
        success: function (data) 
        {
            alert(data);
        }
    });
}
PHP
中,使用
json\u decode
函数获取数组中的值

json_decode($_POST["myJSArray"]);

通过
json.stringify将js数组转换为json格式

function ProcessAJAXRequest()
{
    $.ajax
    ({
        type: "POST",
        url: "myphpfile.php",
        data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)},
        success: function (data) 
        {
            alert(data);
        }
    });
}
PHP
中,使用
json\u decode
函数获取数组中的值

json_decode($_POST["myJSArray"]);

您可以使用
JSON.stringify(array)
在JavaScript中对数组进行编码,然后使用

$array=json_decode($_POST['jsondata'])

在PHP脚本中检索它。请检查此链接


您可以使用
JSON.stringify(array)
用JavaScript对数组进行编码,然后使用

$array=json_decode($_POST['jsondata'])

在PHP脚本中检索它。请检查此链接


在我看来,您的阵列在功能范围内不可用:

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);
      }
   });
}

在我看来,您的阵列在功能范围内不可用:

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);
      }
   });
}

为什么不计算客户端的计数呢?我看不到您的函数范围中有var。您的代码非常好。我得到了第三个数字,没有任何变化。我没有得到任何错误。使用PHP5.3为什么不计算客户端的计数?我看不到您的函数范围中有var。您的代码非常好。我得到了第三个数字,没有任何变化。我没有得到任何错误。使用PHP5.3