2012-04-11 3 views
0

Ich verwende die ajax() -Funktion, um eine Zeichenfolge an eine PHP-Datei zu senden.Wie sende ich eine PHP * Variable * zurück zu jQuery ohne Echo?

Im Falle eines Erfolgs, die PHP-Datei echoes "die Validierung der Zeichenfolge war erfolgreich". Aber ich möchte auch die tatsächliche Zeichenfolge zurück an jQuery senden und in ein div einfügen.

Wie kann diese Zeichenfolge zurückgesendet werden, ohne dass sie zusammen mit der Bestätigungsmeldung angezeigt werden muss?

Oder sollte ich beide Nachrichten in eine Zeichenfolge, senden Sie es an jQuery und jQuery teilen diese Zeichenfolge? Was ist der beste Weg?

+3

Sie können [ 'json_encode ($ response)'] (http://php.net/manual/en/function.json-encode.php), wobei '$ response = array ('Erfolg oder Misserfolg', $ your_string); '. Oder etwas in diesem Sinne. Der Vorteil dabei ist, dass es für Sie Dinge entkommt und ein Objekt erzeugt, das JS ohne weitere Analyse verwenden kann. – NullUserException

+0

Der obige Kommentar ist ein guter Weg, um es zu tun, aber ich bin fasziniert: Möchten Sie die gleiche Zeichenfolge, die Sie an PHP übergeben haben, zurücksenden? Wenn das der Fall ist, müssen Sie nicht. Sie haben die Zeichenfolge bereits in jQuery, verwenden Sie sie einfach. – bfavaretto

+0

Hallo, danke für deine Antworten. Ich möchte die Zeichenfolge serverseitig bereinigen, da ich die Benutzereingabe in meine HTML-Seite anhängen möchte. Grüße – alexx0186

Antwort

2

Putting, was andere in Code gesagt haben, können Sie Ihr PHP-Skript einrichten ein JSON-kodierte wie so Objekt zurückgeben:

$result = array(
    'message' => 'the validation of the string was successful', 
    'original' => 'string sent by client' 
); 

echo json_encode($result); 

Auf der Clientseite können Sie dann jedes Stück aus dem Rückruf zugreifen Funktion wie so:

function (result) { 
    alert(result.message); 
    // do something with result.original 
} 
+0

Hallo rjz, danke für deine Antwort. Eigentlich möchte ich die maskierte Version der ursprünglichen Zeichenfolge senden. Aber ich würde gerne wissen, wie Sie mit diesem Array in JS umgehen? Nur das übliche '$ result [0]'? Vielen Dank – alexx0186

+0

Oh ok, du hast gerade meine Frage beantwortet! Also würde $ result [0] funktionieren? EDIT: vergiss, ich werde deinen Weg benutzen. Vielen Dank! – alexx0186

+0

Hi rjz, ich bekomme "undefiniert" wenn ich 'alert (result.message)'. Ich habe es innerhalb der "Erfolg" -Rückruffunktion von 'ajax()' getan. Würde das ein Problem verursachen? Vielen Dank – alexx0186

0

Ich würde JSON mit der Zeichenfolge und der Überprüfungsmeldung zurückgeben.