Frage

Ich möchte ein Array in Javascript mit den ausgewählten Werten einer Mehrfachauswahl aufgebaut senden. Gibt es eine Möglichkeit, diese Anordnung zu einem PHP-Skript mit Ajax zu senden?

War es hilfreich?

Lösung

Sie können auf Ihren Server mit XML oder JSON Post zurück. Ihr Javascript wird die Post konstruieren müssen, was im Fall von XML erfordern würden Sie es in Javascript zu erstellen. JSON ist nicht nur Lighterweight aber einfacher in Javascript zu machen. Schauen Sie sich JSON-PHP für JSON Parsen.

Sie können einen Blick auf Erstellen von JSON-Daten in PHP nehmen wollen

Andere Tipps

Sie können das tun, mit $ .post Methode von jQuery (zum Beispiel):

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

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

Php wird ein Array erhalten, die Namen wird myphpvariable und es wird die myJavascriptArray Werte enthalten.

Ist es das?

IIRC, wenn PHP eine Abfragezeichenfolge sieht das wie http://blah.com/test.php?var[]=foo&var[]=bar&var[]=baz aussieht, wird es automatisch ein Array machen namens $var, die foo, bar und baz enthält. Ich denke, dass man sogar den Array-Index in den eckigen Klammern des Query-String angeben kann, und es wird den Wert in diesem Index bleiben. Sie können die Klammern URL kodieren müssen ... Die übliche Art und Weise diese Funktion verwendet wird mit dem Namen „var []“, so einfach tun, was der Browser normalerweise bei der Erstellung eines HTML-Eingabefeld ist es der Fall ist. Es gibt einen Abschnitt in der PHP-Dokumentation auf Array-Variablen durch die Anfrage.

Sie können nach einer Möglichkeit suchen, um Serialize (jQuery-Version) die Daten.

jQuery 1.4 aktualisiert wurde für das Senden von Arrays die PHP-Syntax zu verwenden. Sie können es in den alten Stil wechseln, indem Sie mit:

Hier ist die synatax:

jQuery.ajaxSetting.traditional = true;

Hier ist das Beispiel

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

Sie können ein Array erstellen und senden, wie Meador empfohlen: (Folgender Code ist Mootooled, aber ähnlich in anderen Bibliotheken / plain old JS)

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

Das sendet ein Array an php arrayItems genannt, die durch $ _POST zugegriffen werden kann [ 'arrayItems']

echo $_POST['arrayItems'] ; 

wird echo etwas wie: array => {[0] => 'erstes, was', [1] => zweite Sache}

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top