Domanda

Voglio inviare un array costruito in JavaScript con i valori selezionati di una selezione multipla. C'è un modo per inviare questo array a uno script php usando ajax?

È stato utile?

Soluzione

Puoi postare di nuovo sul tuo server con XML o JSON. Il tuo javascript dovrà costruire il post, che nel caso di XML richiederebbe di crearlo in javascript. JSON non è solo più leggero ma è più facile da realizzare in javascript. Dai un'occhiata a JSON-PHP per l'analisi di JSON.

Potresti dare un'occhiata a Creazione di dati JSON in PHP

Altri suggerimenti

Puoi farlo con il metodo $ .post di jQuery (ad esempio):

var myJavascriptArray = new Array('jj', 'kk', 'oo');

$.post('urltocallinajax', {'myphpvariable[]': myJavascriptArray }, function(data){
   // do something with received data!
});

Php riceverà un array che si chiamerà myphpvariable e conterrà i valori myJavascriptArray.

È quello?

IIRC, se PHP rileva una stringa di query che assomiglia a http://blah.com/test.php?var[[=foo&var[[=bar&var[[=baz , creerà automaticamente un array chiamato $ var che contiene foo, bar e baz. Penso che tu possa persino specificare l'indice di matrice tra parentesi quadre della stringa di query e si atterrà il valore in quell'indice. Potrebbe essere necessario codificare l'URL tra parentesi quadre ... Il solito modo in cui viene utilizzata questa funzione è la creazione di un campo di input HTML con il nome "quot [var []", quindi fai tutto ciò che il browser normalmente fa lì. C'è una sezione nella documentazione di PHP sulle variabili dell'array attraverso la richiesta.

Potresti cercare un modo per Serializzare (versione jQuery) i dati.

jQuery 1.4 è stato aggiornato per utilizzare la sintassi PHP per l'invio di array. Puoi cambiarlo nel vecchio stile usando:

ecco la sintassi:

jQuery.ajaxSetting.traditional = true;

ecco l'esempio

$.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

Puoi creare un array e inviarlo, come raccomandato da Meador: (il seguente codice è Mootooled, ma simile in altre librerie / semplicemente vecchio JS)

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

Questo invierà a php un array chiamato arrayItems, a cui è possibile accedere tramite $ _POST ['arrayItems']

echo 

Puoi creare un array e inviarlo, come raccomandato da Meador: (il seguente codice è Mootooled, ma simile in altre librerie / semplicemente vecchio JS)

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

Questo invierà a php un array chiamato arrayItems, a cui è possibile accedere tramite $ _POST ['arrayItems']

<*>

farà eco a qualcosa del tipo: array = > {[0] = > 'prima cosa', [1] = > seconda cosa}

POST['arrayItems'] ;

farà eco a qualcosa del tipo: array = > {[0] = > 'prima cosa', [1] = > seconda cosa}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top