Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
jquery:ajax [2016/03/24 18:15] webproducer angelegt |
jquery:ajax [2024/02/02 12:24] (aktuell) webproducer Download von Dateien per AJAX |
||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
===== Beispiel: ===== | ===== Beispiel: ===== | ||
- | <code html index.php> | + | <code html index.html> |
<html> | <html> | ||
<head> | <head> | ||
Zeile 20: | Zeile 20: | ||
Status: <div id="status">warte auf Eingaben</div> | Status: <div id="status">warte auf Eingaben</div> | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
- | <!-- | ||
$('#add').click( function() { | $('#add').click( function() { | ||
Zeile 40: | Zeile 39: | ||
}); | }); | ||
} ); | } ); | ||
- | //--> | ||
</script> | </script> | ||
</body> | </body> | ||
Zeile 64: | Zeile 62: | ||
Durch das Click-Ereignis der Schaltfläche mit der id "add" wird durch JavaScript die ajax-Funktion aufgerufen. Hier werden als Parameter die values der beiden Elemente "number_1" und "number_2" als POST-Variablen an die PHP-Datei "ajax.php" übergeben. Hier werden die Variablen verarbeitet und als Ergebnis eine JSON-Datei zurückgegeben. Im success-Fall (HTTP-Statuscode 200) werden die empfangenden Variablen "result" und "status" ausgelesen und zur weiteren Verarbeitung verwendet, wobei der Wert von "result" als value in ein Input-Field eingetragen und der Text der Variable "status" als HTML-Text in ein div eingefügt wird. | Durch das Click-Ereignis der Schaltfläche mit der id "add" wird durch JavaScript die ajax-Funktion aufgerufen. Hier werden als Parameter die values der beiden Elemente "number_1" und "number_2" als POST-Variablen an die PHP-Datei "ajax.php" übergeben. Hier werden die Variablen verarbeitet und als Ergebnis eine JSON-Datei zurückgegeben. Im success-Fall (HTTP-Statuscode 200) werden die empfangenden Variablen "result" und "status" ausgelesen und zur weiteren Verarbeitung verwendet, wobei der Wert von "result" als value in ein Input-Field eingetragen und der Text der Variable "status" als HTML-Text in ein div eingefügt wird. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Synchron/Asynchrone Ausführung===== | ||
+ | |||
+ | Im Standard-Verhalten wird der Ajax-Aufruf als Asynchron durchgeführt. Das heißt, dass während der Ausführung des Ajax-Aufrufes das JavaScript weiter ausgeführt wird. Das kann unter bestimmten Umständen ein nicht gewolltes Verhalten sein, z. B. wenn das Ergebnis aus dem Ajax-Aufruf für die weitere Ausführung des JavaScripts notwendig ist. Für diese Fälle kann der zusätzliche Parameter "async" auf false gesetzt werden. | ||
+ | |||
+ | **Beispiel:** | ||
+ | |||
+ | <code javascript> | ||
+ | var ergebnis; | ||
+ | |||
+ | $.ajax( { | ||
+ | url: 'ajax.php', | ||
+ | type: 'post', | ||
+ | async: false, | ||
+ | data: $('#Formulareingaben').serialize(), | ||
+ | success: function( response ) { | ||
+ | ergebnis = response; | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | $('#Ergebnisfeld').html( ergebnis ); | ||
+ | </code> | ||
+ | |||
+ | In diesem Beispiel wartet das JavaScript auf die Antwort des Ajax-Calls, um mit dem Ergebnis weiterarbeiten zu können. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Download von Dateien per AJAX ===== | ||
+ | |||
+ | Es besteht auch die Möglichkeit Dateien/Dokumente per Download über einen AJAX-Aufruf zur Verfügung zu stellen. | ||
+ | |||
+ | [[jquery:ajax:download|Beispiel für Datei-Download über jQuery-AJAX]] | ||
+ |