2011-04-06 11 views
34

¿Cómo puedo pasar una matriz de Javascript a través de JQuery Post para que todos sus contenidos estén accesibles a través de la matriz PHP $ _POST?

Por favor, muestre un ejemplo de código que haría el truco.

Gracias!

Respuesta

54

Si desea pasar un JavaScript objeto/almohadilla (. Es decir, una matriz asociativa en PHP), entonces puede hacer:

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

Si quieres pasar una matriz real (es decir, una matriz indexada en PHP.), entonces usted puede hacer:

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

Si desea pasar una matriz de JavaScript entonces usted puede hacer:

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

aquí va un ejemplo:

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

espero que ayude.

+0

Pero lo que si la matriz está en una variable de Javascript? – PleaseHelpMe

+4

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

+0

@Rui, ¿por qué la única cita es 'choices []'? ¿Dónde está la regla al respecto en el sitio de la autoridad js o jquery, por favor? –

23

Esto es justo Ligeramente directo. En sus JS, lo único que haría es esto o algo similar:

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 
}); 

en su página php, los valores en forma array estará disponible a través $_POST['array1'].

referencias

+0

Ok Esto es bueno ... – Mifas

+0

BUENA RESPUESTA !!!! – Andrew

0

Creo que deberíamos enviado en este formato

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

su ya mencionado en Pass array to mvc Action via AJAX

que trabajó para mí

Cuestiones relacionadas