Mit $('#form').serialize()
konnte ich dies an eine PHP-Seite senden. Wie kann ich es nun in PHP unserialisieren? Es wurde in jQuery serialisiert.
php
jquery
serialization
Gene Bean
quelle
quelle
Antworten:
Sie sollten in PHP nichts von der jquery-
serialize
Methode unserialisieren müssen . Wenn Sie die Daten serialisieren, sollten sie als Abfrageparameter an PHP gesendet werden, wenn Sie eine Ajax-Anforderung der GET-Methode verwenden, oder Post-Vars, wenn Sie eine Ajax-Anforderung für den POST verwenden. In PHP würden Sie also auf Werte wie$_POST["varname"]
oder$_GET["varname"]
abhängig vom Anfragetyp zugreifen .Die
serialize
Methode nimmt nur die Formularelemente und fügt sie in Zeichenfolgenform ein."varname=val&var2=val2"
quelle
serialize
. Siehe die wirklich beliebte Antwort unten.Vorausgesetzt, Ihr Server empfängt eine Zeichenfolge, die ungefähr so aussieht (was bei Verwendung von jQuery der Fall sein sollte
serialize()
):... so etwas ist wahrscheinlich alles was Sie brauchen:
$params
sollte dann ein Array sein, das so modelliert ist, wie Sie es erwarten würden. Beachten Sie, dass dies auch mit HTML-Arrays funktioniert.Weitere Informationen finden Sie im Folgenden: http://www.php.net/manual/en/function.parse-str.php
Hoffe das ist hilfreich. Viel Glück!
quelle
// jQuery Post
// jquery.post serialisiertes var - TO - PHP Array Format
// Du bekommst dasselbe davon
quelle
quelle
In der HTML- Seite:
auf der PHP- Seite:
Rückgabefeld für diesen PHP-Code
f1
.quelle
Warum nicht assoziatives Array verwenden, damit Sie es einfach verwenden können?
Grüße
quelle
$i = 0;
Geänderte Antwort von Murtaza Hussain :
quelle
Mach das einfach
quelle
Ich weiß nicht, welche Version von Jquery Sie verwenden, aber dies funktioniert für mich in JQuery 1.3:
Dann können Sie auf POST-Array-Schlüssel zugreifen, wie Sie es normalerweise in PHP tun würden. Versuchen Sie es einfach mit einem
print_r()
.Ich denke, Sie verpacken einen serialisierten Formularwert in die Eigenschaft eines Objekts, was meines Wissens nutzlos ist.
Hoffe das hilft!
quelle
Dies ist eine Antwort auf user1256561. Vielen Dank für Ihre Idee. Ich habe mich jedoch nicht um das in Schritt 3 erwähnte URL-Dekodierungsmaterial gekümmert.
Hier ist also der PHP-Code, der die serialisierten Formulardaten dekodiert, falls jemand anderes sie benötigt. Verwenden Sie diesen Code übrigens nach eigenem Ermessen.
Die Eingabe der URL-Post-Daten lautet wie folgt: attribute1 = value1 & attribute2 = value2 & attribute3 = value3 und so weiter
Die Ausgabe des obigen Codes befindet sich weiterhin in einem Array. Sie können ihn so ändern, dass er jeder gewünschten Variablen zugewiesen wird. Dies hängt davon ab, wie Sie diese Daten weiter verwenden möchten.
quelle
Sie benötigen lediglich den Wertattributnamen im Formular. Beispiel:
Bilden
Javascript
PHP - index.php
quelle
Verwenden:
PHP Array bekommen, brauchen nicht unserialize;)
quelle
Ich denke, Sie müssen die Formularnamen von ihren Werten trennen. Eine Methode, um dies zu tun, besteht darin, zu explodieren,
(&)
damit Sie erhaltenattribute=value,attribute2=value
.Mein Punkt hier ist, dass Sie die serialisierte jQuery-Zeichenfolge in Arrays in PHP konvertieren.
Hier sind die Schritte, die Sie befolgen sollten, um genauer zu sein.
jQuery
zu einerPHP
Seite (zBajax.php
) , wo Sie verwenden$.ajax
einreichen Post mit oder zu erhalten.(&)
so getrennten Attribute. Jetzt erhalten Sie Attribut1 = Wert, Attribut2 = Wert, jetzt erhalten Sie eine PHP-Array-Variable. z.B$data = array("attribute1=value","attribute2=value")
foreach
auf$data
undexplode
das(=)
so , dass Sie das Attribut aus dem Wert trennen können, und achten Sie darauf,urldecode
den Wert , so dass es serialisiert Werte auf den Wert konvertieren , die Sie benötigen, und setzen Sie das Attribut und seinen Wert auf einen neuen Array - Variable, die speichert das Attribut und den Wert der serialisierten Zeichenfolge.Lassen Sie mich wissen, wenn Sie weitere Erläuterungen benötigen.
quelle
Sie können diese Funktion verwenden:
Wie man es benutzt
quelle