2013-07-20 78 views
2

我應該將帶有AJAX的數組和變量傳遞給PHP文件。將帶有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']是正確的方式。

回答

0

你可以嘗試兩件事情之一是json stringify數組變量,並在PHP中做json_decode以獲得數組。

myarray: JSON.stringify(someObj.SpecificGranted); 

,或者如果它是一個簡單的數組,你可以直接發送通過

myarray[]: someObj.SpecificGranted; 

注意[] in myarray到PHP。你可以使用$_POST['myarray[]']在php中獲得它。

+0

我試圖把警報( 「你好」);數據{....}後。它工作,如果內部數據沒有myarray []:someObj.SpecificGranted;但如果我添加它 警報不顯示。 – user2588490

0

試試這個(在jQuery):

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