Ich möchte ein JavaScript-Array in PHP bearbeiten. Ist es möglich so etwas zu tun?
$.ajax({
type: "POST",
url: "tourFinderFunctions.php",
data: "activitiesArray="+activities,
success: function() {
$("#lengthQuestion").fadeOut('slow');
}
});
Aktivitäten ist ein eindimensionales Array wie:
var activities = ['Location Zero', 'Location One', 'Location Two'];
Das Skript wird nicht vollständig ausgeführt, wenn ich dies versuche ... Wie kann ich es beheben?
php
javascript
jquery
ajax
krx
quelle
quelle
Antworten:
data: { activitiesArray: activities },
Das ist es! Jetzt können Sie in PHP darauf zugreifen:
<?php $myArray = $_REQUEST['activitiesArray']; ?>
quelle
Sie möchten Ihr Array vor dem Senden als JSON codieren, oder Sie erhalten nur etwas Müll am anderen Ende.
Da Sie nur das Array senden, können Sie einfach Folgendes tun:
data: { activities: activities }
Dadurch wird das Array automatisch für Sie konvertiert.
Siehe hier für Details.
quelle
Sie müssen dies in eine Zeichenfolge verwandeln. Sie können dies mit der stringify-Methode in der JSON2-Bibliothek tun.
http://www.json.org/
http://www.json.org/js.html
Der Code würde ungefähr so aussehen:
var myJSONText = JSON.stringify(myObject);
Damit
['Location Zero', 'Location One', 'Location Two'];
Wird werden:
"['Location Zero', 'Location One', 'Location Two']"
Sie müssen sich an einen PHP-Guru wenden, um zu erfahren, wie dies auf dem Server gehandhabt wird. Ich denke, andere Antworten hier deuten auf eine Lösung hin.
Daten können auf ähnliche Weise vom Server zurückgegeben werden. Das heißt, Sie können es wieder in ein Objekt verwandeln.
var myObject = JSON.parse(myJSONString);
quelle
Ich weiß, dass es vielleicht zu spät ist, dies zu beantworten, aber das hat bei mir sehr gut funktioniert:
Stringifizieren Sie Ihr Javascript-Objekt (json) mit
var st = JSON.stringify(your_object);
Übergeben Sie Ihre POST-Daten als "Zeichenfolge" (möglicherweise mit jQuery:
$.post('foo.php',{data:st},function(data){... });
$data = json_decode($_POST['data']);
Das war's ... Sie können Ihre Daten frei verwenden.
Mehrdimensionale Arrays und einzelne Arrays werden als normale Arrays behandelt. Um darauf zuzugreifen, gehen Sie einfach wie gewohnt vor
$foo[4]
.Assoziative Arrays (Javsacript-Objekte) werden als PHP-Objekte (Klassen) behandelt. Um auf sie zuzugreifen, machen Sie es einfach wie Klassen :
$foo->bar
.quelle
Ich sollte so sein:
$.post(submitAddress, { 'yourArrayName' : javaScriptArrayToSubmitToServer }, function(response, status, xhr) { alert("POST returned: \n" + response + "\n\n"); })
quelle
Verwenden Sie die Funktion JQuery Serialize
http://docs.jquery.com/Ajax/serialize
quelle
Das hat bei mir funktioniert:
$.ajax({ url:"../messaging/delete.php", type:"POST", data:{messages:selected}, success:function(data){ if(data === "done"){ } info($("#notification"), data); }, beforeSend:function(){ info($("#notification"),"Deleting "+count+" messages"); }, error:function(jqXHR, textStatus, errorMessage){ error($("#notification"),errorMessage); } });
Und das für dein PHP :
$messages = $_POST['messages'] foreach($messages as $msg){ echo $msg; }
quelle
Verwenden Sie die in PHP integrierte Funktionalität, um den Array-Operanden an den gewünschten Variablennamen anzuhängen.
Wenn wir einem Javascript-Array wie folgt Werte hinzufügen:
acitivies.push('Location Zero'); acitivies.push('Location One'); acitivies.push('Location Two');
Es kann wie folgt an den Server gesendet werden:
$.ajax({ type: 'POST', url: 'tourFinderFunctions.php', 'activities[]': activities success: function() { $('#lengthQuestion').fadeOut('slow'); } });
Beachten Sie die Anführungszeichen um Aktivitäten []. Die Werte sind wie folgt verfügbar:
$_POST['activities'][0] == 'Location Zero'; $_POST['activities'][1] == 'Location One'; $_POST['activities'][2] == 'Location Two';
quelle
Dies liegt daran, dass PHP Ihren Wert als Zeichenfolge liest. Wenn ich meine Daten nicht als Objekt übergeben möchte (wie in den vorherigen Antworten, die auch in Ordnung sind), mache ich dies einfach in meinem PHP:
$activitiesString = $_POST['activitiesArray']; $activitiesArray = (explode(",",$activitiesString));
Die letzte Zeile teilt die Zeichenfolge nach jedem Komma in Bits auf. Jetzt ist $ activityArray auch ein Array. Es funktioniert auch, wenn kein Komma vorhanden ist (nur ein Element in Ihrem Javascript-Array).
Viel Spaß beim Codieren!
quelle