javascript - Objekt übergeben via post
Ich habe ein Objekt, das aussieht wie dieses
var obj = {
p1 : true,
p2 : true,
p3 : false
}
Ich bin auf der Suche, um zu versuchen und übergeben Sie dieses Objekt als Teil einer post-Anforderung.
jedoch am anderen Ende (in php) alles was ich bekomme ist
[object object]
Wie kann ich senden Sie ein Objekt via post?
im Grunde, was ich versuche zu tun, ist
Habe ich einen Eingang, der versteckt ist und wie folgt erstellt
<input id="obj" type="hidden" name="obj[]">
ist Teil einer verborgenen form.
wenn eine Taste gedrückt wird, habe ich
$(#obj).val(obj);
$('form').submit();
Bitte keine Vorschläge zu ajax verwenden, wie muss ich es so machen, wie es zum herunterladen einer dynamisch erstellten Datei.
InformationsquelleAutor Hailwood | 2010-11-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie serialisieren/konvertieren Sie das Objekt in eine Zeichenfolge, bevor Sie es übermitteln. Sie können
jQuery.param()
.+1, und hier ist eine demo: jsfiddle.net/TQEzE
funktioniert sogar rekursiv
{a: {b: 'c', d: {e: 'f', g: 'h'}, i: 'j'}
=>a[b]=c&a[d][e]=f&a[d][g]=h&i=j
InformationsquelleAutor Matt
Könnten Sie erwägen, JSON - notation, um das Objekt senden an den server.
, Wenn Sie eine JSON parser/renderer, in Ihre Seite ein,(es ist gebaut auf allen modernen Browsern jetzt und auch IE8 in den standards-Modus) können Sie konvertieren Sie das Objekt in einen string Erhaltung der vollen Objekt-graph. Die meisten server-Seite Sprachen nun JSON-parsing für Sie zur Verfügung (in PHP ist esjson_decode
zum Beispiel). Sie können diese Zeichenfolge in dein verstecktes Formular-Feld, bevor Sie das Formular senden.Das würde dann so Aussehen:
...und der server-Seite würde sehen, eine Zeichenfolge in der form
Kann nicht glauben, dass ich verpasst. Behoben.
Cheers, Eure neuen Antworten arbeiten. Jedoch bin ich mit @Matt ' s Antwort 🙂 (ps, Sie bekommen ein upvote von mir)
Froh, dass Matt ' s Lösung wird für Sie arbeiten, es ist alles über Optionen. 🙂
Genau, Eigentlich bevorzuge ich diese option, aber ich bin auch jquery schon, es sei denn, es hat einen integrierten JSON-parser habe ich nicht wirklich wollen, um eine andere Bibliothek. Die meisten Browser haben nun einen JSON-parser schon, aber... IE6...
InformationsquelleAutor T.J. Crowder