por pasar enviar datos array php ajax multiple-select

pasar - send array ajax jquery to php



¿Cómo puedo enviar una matriz a php a través de ajax? (6)

Quiero enviar una matriz construida en javascript con los valores seleccionados de una selección múltiple. ¿Hay alguna manera de enviar esta matriz a un script php usando ajax?


Es posible que esté buscando una forma de serializar (versión jQuery) los datos.


IIRC, si PHP ve una cadena de consulta que se ve como http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz , creará automáticamente una matriz llamada $var que contiene foo, bar y baz. Creo que incluso puede especificar el índice de matriz entre los corchetes de la cadena de consulta y pegará el valor en ese índice. Es posible que necesite codificar URL entre corchetes ... La manera habitual en que se utiliza esta característica es creando un campo de entrada HTML con el nombre "var []", así que haga lo que el navegador normalmente hace allí. Hay una sección en la documentación de PHP sobre variables de matriz a través de la solicitud.


Puede publicar de nuevo en su servidor con XML o JSON. Tu javascript tendrá que construir la publicación, que en el caso de XML requeriría que la crees en javascript. JSON no solo es más liviano sino también más fácil de hacer en javascript. Consulte JSON-PHP para analizar JSON.

Es posible que desee echar un vistazo a la creación de datos JSON en PHP


Puede crear una matriz y enviarla, como Meador recomendó: (el siguiente código es Mootooled, pero similar en otras bibliotecas / JS antiguo simple)

myArray.each(function(item, index) myObject.set(''arrayItems[''+index+'']'', item); myAjax.send(myObject.toQueryString());

Esto enviará a php una matriz llamada arrayItems, a la que se puede acceder a través de $ _POST [''arrayItems'']

echo $_POST[''arrayItems''] ;

hará eco de algo como: array => {[0] => ''lo primero'', [1] => lo segundo}


Puede hacerlo con el método $ .post de jQuery (por ejemplo):

var myJavascriptArray = new Array(''jj'', ''kk'', ''oo''); $.post(''urltocallinajax'', {''myphpvariable[]'': myJavascriptArray }, function(data){ // do something with received data! });

Php recibirá una matriz que se denominará myphpvariable y contendrá los valores myJavascriptArray.

¿Es eso?


jQuery 1.4 se actualizó para usar la sintaxis de PHP para enviar matrices. Puede cambiarlo al estilo antiguo usando:

aquí está el synatax:

jQuery.ajaxSetting.traditional = true;

aquí está el ejemplo

$.ajax({ traditional: true, type: "post", url: myURL, dataType: "text", data: dataToSend, //this will be an array eg. success: function(request) { $(''#results'').html(request); } // End success }); // End ajax method