2013-12-11 15 views
0

這是關於傳遞一個數組到一個PHP頁面。是否有可能發送這樣的數組(如下代碼)?如果它不可能,我應該爲我的代碼做些什麼改變?在javascript中傳遞數組。發送函數

function ajax_post(){  
var hr = new XMLHttpRequest();  
hr.open("POST", "get_numbers.php", true); 
hr.setRequestHeader("Content-type", "application/json");  
hr.onreadystatechange = function() { 
    if(hr.readyState == 4 && hr.status == 200) { 
     var data = JSON.parse(hr.responseText); 
     var results=document.getElementById("ace"); 
     //results.innerHTML=data.u1.port; 
     for (var obj in data) 
     { 
     results.innerHTML+=data[obj].port; 
     } 
    } 
} 
var cards= new Array(); 
cards[0]="hearts"; 
cards[1]="spades"; 
hr.send(cards); 
results.innerHTML = "processing..."; 
} 

回答

1

.send()不需要JavaScript數組。您可以發送多種形式的數據,並且您必須決定哪種形式是合適的,但數組不是其中之一。最簡單的方法是將數組轉換爲JSON字符串併發送。

var cards = [ 
    "hearts", 
    "spades" 
]; 

hr.send(JSON.stringify(cards)); 

然後,在事情的接收端,您可以將JSON解析爲您在服務器端使用的任何語言形式。如果它是PHP,那麼您可以使用PHP函數來解析JSON,這會將數據放入服務器上的PHP數組中。

MDN doc page的XMLHttpRequest對象,.send()可以採取以下類型的數據:

void send(); 
void send(ArrayBufferView data); 
void send(Blob data); 
void send(Document data); 
void send(DOMString? data); 
void send(FormData data); 

使用JSON將使用的字符串類型。