2009-06-04 91 views
17

我想知道如何使用$ .ajax發佈數組。我的數組是這樣的:jQuery post數組

var a = new Array(); 
a['test'] = 1; 
a['test2'] = 2; 
and so on... 

我想:

$.ajax({ 
    url: baseUrl+"chat.php", 
    data: { vars: a}, 
    type: 'post', 
    success: function(data) { 
alert(data); 
}}); 

有什麼建議?

+0

看起來沒有什麼明顯的錯誤,你如何試圖訪問在PHP中的數據? – Steerpike 2009-06-04 13:51:44

+0

你有沒有使用某種交通手錶來確保通話進入chat.php頁面? – Steerpike 2009-06-04 13:53:09

回答

32

試試這個:

var a = {}; 
a['test'] = 1; 
a['test2'] = 2; 

// or 


var a = {}; 
a.test = 1; 
a.test2 = 2; 

// or 


var a = { 
    test : 1, 
    test2 : 2 
}; 

$.ajax({ 
    url: baseUrl+"chat.php", 
    data: a, 
    type: 'post', 
    success: function(data) { 
    alert(data); 
    } 
}); 

然後您就可以訪問數據在你的PHP腳本是這樣的:

$_POST['test']; 
$_POST['test2']; 
1

這是我如何傳遞數組(從現實生活中的代碼)的例子:

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: { CartID : cartID, 'Manufacturers[]' : manufacturers, 'PartNumbers[]' : partNumbers }, 
    success: function(res) 
    { 
    ... 
    }, 
    dataType: "json", 
    async: false 
}); 
然後在服務器側

$cartID = $_POST['CartID']; 
$manufacturers = $_POST['Manufacturers']; 
$partNumbers = $_POST['PartNumbers']; 
8

我用這個:

var newArray = new Array(); 
newArray.push("item1"); 
newArray.push("item2"); 
newArray.push("item3"); 

$.ajax({ 
    type: "POST", 
    url: urlToPost, 
    data: JSON.stringify(newArray), 
    contentType: "application/json" 
    }); 
2

我喜歡做這種方式:

即。

var data = [{ name: 'test1', value: 'test data' }, { name: 'test2', value: 'test data' }]; 

$.ajax({ 
    type: 'POST', 
    url: 'url', 
    data: data, 
    }); 

服務器端(PHP):$_POST['test1'];$_POST['test2'];