2011-04-06 38 views
34

如何通過JQuery Post傳遞一個Javascript數組,以便通過PHP $ _POST數組訪問它的所有內容?

請給出一個可以實現這個技巧的代碼示例。

謝謝!

回答

54

如果你想傳遞一個JavaScript對象/散列(即在PHP關聯數組),那麼你會怎麼做:

$.post('/url/to/page', {'key1': 'value', 'key2': 'value'}); 

如果你想傳遞一個實際的數組(即在PHP中索引數組。 ),那麼你可以這樣做:

$.post('/url/to/page', {'someKeyName': ['value','value']}); 

如果你想傳遞一個JavaScript數組,那麼你可以這樣做:

$.post('/url/to/page', {'someKeyName': variableName}); 
8

這裏去一個例子:

$.post("test.php", { 'choices[]': ["Jon", "Susan"] }); 

希望它能幫助。

+0

但是,如果陣列是一個JavaScript變量? – PleaseHelpMe 2011-04-06 19:20:23

+4

var choices = [「Jon」,「Susan」]; $ .post(「test.php」,{'choices []':choices}); – Rui 2011-04-06 19:25:13

+0

@Rui,爲什麼圍繞'choices []'的單引號?請問js或jquery權威網站的規則在哪裏? – 2012-11-02 06:50:58

23

這是公平的直截了當。在你的JS,你會做這樣或類似的東西:

var array = ["thing1", "thing2", "thing3"]; 

var parameters = { 
    "array1[]": array, 
    ... 
}; 

$.post(
    'your/page.php', 
    parameters 
) 
.done(function(data, statusText) { 
    // This block is optional, fires when the ajax call is complete 
}); 

在你的PHP頁面,以字符串形式的值將可通過$_POST['array1']

引用

+0

好吧這很好... – Mifas 2012-11-08 11:21:56

+0

好回答!!!! – Andrew 2015-09-18 18:53:52

0

我認爲我們應該以這種格式

var array = [1, 2, 3, 4, 5]; 
$.post('/controller/MyAction', $.param({ data: array }, true), function(data) {}); 

其在已經提到發送Pass array to mvc Action via AJAX

它爲我

相關問題