Wie kodiere ich JSON in PHP über jQuery Ajax Post-Daten?

8

Ich habe ein HTML-Formular und sende Daten an die php-Datei, wenn ich auf den Submit-Button klicke.

%Vor%

In PHP:

%Vor%

Das Ergebnis ist [Objektobjekt]. Ich möchte einen Typ wie:

%Vor%

Was habe ich falsch gemacht?

    
nich 15.10.2013, 12:20
quelle

5 Antworten

19

Codebeispiel mit JSON.stringify:

%Vor%

text.php

%Vor%     
Jenson M John 15.10.2013, 12:58
quelle
4

Ihr Objekt wird höchstwahrscheinlich ordnungsgemäß übergeben. Auf diese Weise erfährst du das Ergebnis, das [object object] zurückgibt, wie @Spudley erklärt hat. Die Konsole weiß nicht, wie das Konstrukt angezeigt wird, Sie können jedoch bestimmte Attribute mit der Syntax object.attribute anzeigen. Verwenden Sie console.log() auf der JS-Seite oder den Code unten für eine verschönerte Ausgabe.

%Vor%

Von Wie kann ich JSON hübsch drucken? (Unix) Shell-Skript?

Entfernen Sie auch vorübergehend dataType im Ajax-Handler, wenn Sie irgendwo einen Fehler bemerken. Es sollte ausreichen, die Ausgabe zu erhalten, die auf einer GET-Anfrage angezeigt werden soll. Ändern Sie diesen Wert für jede Operation, die eine Datenbank löschen oder ändern soll, zurück in POST.

Zuletzt ändern Sie die Kopfzeile wie in @ GroovyCarrots Antwort gezeigt. Wenn Sie Chrome verwenden, scheint das zusätzliche Leerzeichen ein Fehler zu sein: Tab und Pre-Wrapper um JSON-Ausgabe in Chrome

    
James P. 15.10.2013 12:30
quelle
2

Versuchen Sie,

hinzuzufügen %Vor%

Ganz oben in Ihrem PHP-Skript und sehen Sie, was Sie zurückbekommen

Hoffe das hilft!

Bearbeiten: Vergessen Sie zu erwähnen, dass Sie auf Ihre Werte wie folgt zugreifen sollten: data.amount

    
GroovyCarrot 15.10.2013 12:30
quelle
1

Sie können ein JSON-Objekt nicht direkt in ein Dom einfügen. JSON-Objekt toString() Methode wird immer geben Sie [Objekt Objekt], deshalb erhalten Sie dies. Sie müssen die Daten mithilfe von analysieren JSON.stringify(data) oder du musst $.each(data,function(val){ $("#result").append(val) }) ausführen.

    
Harry Bomrah 15.10.2013 12:34
quelle
0

Sie konvertieren das resultierende Objekt in eine Zeichenfolge, anstatt es anzuzeigen.

Anstelle von result können Sie, wenn Sie ein Objekt innerhalb eines Wrappers drucken wollen, etwas wie folgt machen:

%Vor%

Aber Sie können bedenken, dass console.log viel einfacher und schneller ist, die Antwort im JSON-Format zu sehen.

    
baldrs 15.10.2013 12:32
quelle

Tags und Links