HALLO funktioniert es so in jQuery
$.post('url', {input}, function(data){
});
Die Javascript wird eine Web-Anfrage machen, so, wie wenn Sie URL im Browser setzen, richtig (wenn es $ .get das heißt, offensichtlich kippen wir senden posten Sie Daten über die URL der Browser-URL, Sie können jedoch ohne die Post-Daten auf die Seite gehen. Jetzt, da es AJAX ist, geht alles zurück in Daten. Es ist asynchron, was bedeutet, dass Ihre JS gewohnt für die Anforderung warten, wenn Sie zum Beispiel
$.post('url', {input}, function(data){
});
alert(data.result);
Es wird nicht funktionieren setzen, aus 2 Gründen, ist Umfang (Daten sind eine Funktion Eingabeparameter nicht zugänglich außerhalb der Funktion). Der andere ist, dass die Warnung ausgelöst wird, bevor der Post abgeschlossen wird, obwohl er nach der $ .post-Anfrage geschrieben wurde. Aus diesem Grund müssen Sie die Daten in der Rückruffunktion verwenden.
Jetzt auf der PHP-Seite, wo immer diese URL ist, wird es gelaufen, genau wie du normalerweise dorthin gegangen bist. Im Wesentlichen gibt es keinen Unterschied zum Server seine AJAX oder eine Browser-Anfrage. Es ist wie ein Formular zu senden. Die interessanten Dinge, die Sie tun können, ist, Ihre Daten als JSON zurückzugeben. indem Sie den JSON-Header der Anwendung verwenden und in PHP json_encode()
verwenden. Dies ist im Wesentlichen die JavaScript String Object Notation. (nicht sicher, ob ich mich daran erinnere), aber genau das ist es.
Es gibt keine Magie in der Anfrage. Die meisten Leute verstehen nicht wirklich, dass alles, was der Server zurückgibt, nur Text ist. Sei es eine PDF-Datei, ein JPG, eine Webseite, irgendetwas ist ihr einziger Text. Mit JSON können Sie die Struktur Ihrer Daten beibehalten, z. B. ein Array. Es ist ein spezielles Textformat, das JavaScript als Objekt und Array versteht.
Ich erklärte dies einem meiner Junior-Entwickler neulich. Wenn Sie die richtigen Header setzen, können Sie CSS-Dateien mit PHP, Bildern usw. erzeugen. Weil es alles nur Text ist. Das Internet ist sehr einfach. Sie haben nur für Anfragen und Text als Antwort bekommen und post. Das ist es zum größten Teil.
Wie dem auch sei,
Richtig, also jetzt in PHP (für ein schnelles Beispiel)
header('Content-Type: application/json');
$a = array('one'=>1);
echo json_encode($a);
Mit json_encode()
wird es (das ist die Antwort vom Server zurückgesendet)
'{one:1}'
Und in JS auf der Client-Seite (innerhalb der $ .post Callback) seine
data.one;
Wir können diese data
im Callback nehmen, dann können Sie einfach einige grundlegende jQuery verwenden, um die Werte von Eingaben oder Inhalt von HTML-Tags durch Ihre zurückgegebenen Daten zu ersetzen.
$('#input').val(data);
$('#htmlElement').text(data); // or data.one - whatever you had in php array keys.
Sinn machen? Oben nehmen wir ein PHP-Array mit json_encode()
, um es zu einem JSON-String zu machen, und dann (mit dem richtigen Header) können wir auf das normalerweise in JS unter Verwendung seiner Punktsyntax zugreifen. Denken Sie daran, was ich oben gesagt habe, dass nur Text vom Server zurückgegeben wird, deshalb müssen wir ihn in einen JSON-String konvertieren. Der Punkt in JS ist wie der ->
in PHP. Sie könnten auch data['one']
verwenden, was noch mehr wie PHP ist, aber das ist technisch nicht der richtige Weg, wenn Sie wissen, was one
ist.
Der Prozessablauf ist auch einfach, genau wie wir nur Post bekommen, und Text. Wir können nur Anfragen vom Client und Antworten vom Server stellen. Es geht also immer
Client Request -> Sever Response -> Client receives response.
Wir können zum Beispiel den Client nicht vom Server anrufen.
Sever Call-> Client receives
arbeiten Dies nicht ohne Dinge wie node.js oder Socket-Server.
Als Referenz (etwa Json Antworten)
Returning JSON from a PHP Script
Was ist Ihr * wirklich ist * Frage? –
Das Lesen dieser Frage hat mich müde gemacht. Was ist die TL, DR Version ?, was fragst du hier? –
Sie sagen, Sie wissen, dass Sie Ajax verwenden müssen ... also verwenden Sie Ajax. Was ist das Problem? – Quentin