使用AJAX将数组传递给PHP文件

时间:2013-07-20 14:35:41

标签: javascript jquery ajax

我应该使用AJAX将数组和变量传递给PHP文件。

如果我尝试只传递变量,一切正常,但如果我尝试传递数组或只传递数组,我会遇到一些问题。

这是我的代码:

function myfunction()
 {  
     var someObj={};
     someObj.SpecificGranted=[];

    xmlHttp.open('POST', "file.php", true);    
    xmlHttp.onreadystatechange = function() 
    {
        if(xmlHttp.readyState == 4) 
        { 
            if (xmlHttp.status == 200) 
            {
            data: {
                    myvar : <?php echo $myvar;?>,
                    myarray:someObj.SpecificGranted;
                }            
             }
        }
    };

    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");    
    xmlHttp.send("myvar=<?php echo $myvar;?>"+myarray);
  }
}

我还会问如何在PHP文件中检索数组...因为   我不确定$_POST['myarray']是否正确。

2 个答案:

答案 0 :(得分:0)

您可以尝试两个方面,一个是json stringify数组变量,并在php中执行json_decode以获取数组。

myarray: JSON.stringify(someObj.SpecificGranted);

如果它是一个简单的数组,你可以直接通过

将它发送到php
myarray[]: someObj.SpecificGranted;

请注意[] in myarray。你可以使用$_POST['myarray[]']在php中获取它。

答案 1 :(得分:0)

试试这个(在jQuery中):

function myfunction() {
    var someObj = {};
    someObj.SpecificGranted = ['one', 'two'];
    $.get('file.php', {myvar: '123', myarray: someObj.SpecificGranted}, function(data) {
        console.log(data);
    });
}
myfunction();