Inhalte mit AJAX & PHP nachladen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dieses Tutorial soll ihnen zeigen, wie sie mit Hilfe von AJAX Inhalte nachladen können, die mit PHP verarbeitet wurden.
    Je nachdem, wie der User interagiert, verarbeitet PHP die Seite und liefert unterschiedliche Inhalte.

    Das Beispiel wurde bewusst praxisfern erstellt.
    Ich denke aber, dass man den Code so leichter nachvollziehen kann. Durch den spielenden Einsatz von PHP hoffe ich euch die Angst vor AJAX nehmen zu können, so dass ihr eure eigenen Experimente mit AJAX starten könnt.

    Hier nun die zwei Dateien:

    Quellcode

    1. <html><head>
    2. <script type="text/javascript">
    3. <!--
    4. function sendRequest(digit) {
    5. var req;
    6. try {
    7. req = window.XMLHttpRequest?new XMLHttpRequest():
    8. new ActiveXObject("Microsoft.XMLHTTP");
    9. } catch (e) {
    10. //Kein AJAX Support
    11. }
    12. req.onreadystatechange = function() {
    13. if ((req.readyState == 4) && (req.status == 200)) {
    14. var update = new Array();
    15. var response = req.responseText;
    16. if(response.indexOf('||' != -1)) {
    17. update = response.split('||');
    18. for(i=0; i<update.length; i+=2)
    19. document.getElementById(update[i]).innerHTML = update[i+1];
    20. }
    21. }
    22. };
    23. req.open('POST', 'func.php');
    24. req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    25. req.send('s='+digit);
    26. // damit links nicht an den browser durchgeleitet werden
    27. return false;
    28. }
    29. //-->
    30. </script>
    31. <style type="text/css">
    32. <!--
    33. div {
    34. float:left;
    35. width:25%;
    36. font-size:6px;
    37. background-color:#e5e5e5;
    38. margin:10px;
    39. height:200px;
    40. width:175px;
    41. }
    42. //-->
    43. </style>
    44. </head>
    45. <body>
    46. <p /><a href="#" onclick="return sendRequest('x')">Alle Felder mit Beispielinhalten füllen</a>
    47. <p />Klicken Sie auf die Boxen um einen neuen Inhalt nachzuladen
    48. <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" class="example">
    49. <div id="content0" onclick="sendRequest(0)">
    50. </div>
    51. <div id="content1" onclick="sendRequest(1)">
    52. </div>
    53. <div id="content2" onclick="sendRequest(2)">
    54. </div>
    55. </form>
    56. </body></html>
    Alles anzeigen


    Quellcode

    1. <?
    2. function dummyOutput($beispiel, $i, $htmlID)
    3. {
    4. echo $htmlID.$i.'||';
    5. foreach($beispiel as $word) {
    6. echo $word." ".$i." ";
    7. }
    8. echo '||';
    9. }
    10. $htmlID = 'content';
    11. $beispiel = explode(' ', 'Herzlich Willkommen im Coder Wiki Dieses Projekt ist in Kooperation mit dem Easy-Coding Forum entstanden und soll als Anlaufstelle für Anfänger und Fortgeschrittene dienen Ihr seid herzlichst Willkommen eigene Beiträge zu veröffentlichen denn nur so kann ein Wiki existieren Wir hoffen die Datenbank in den nächsten Tagen mit zahlreichen How Tos Tutorials und Algorithmen füttern zu können Das Wiki soll lange existieren und zwar länger als einige Gratis-Hoster benutzt daher bitte die Upload Funktionen für Bilder und Dateien. Aus Sicherheitsgründen ist der Upload jedoch passwortgeschützt Schreibt mir einfach eine E-Mail wenn Ihr Uploads habt. Ich schicke euch dann schnellstmöglichst das aktuelle Passwort');
    12. shuffle($beispiel);
    13. if($_POST['s'] == 'x') {
    14. for($i=0; $i<3; $i++) {
    15. dummyOutput($beispiel, $i, $htmlID);
    16. }
    17. } else {
    18. dummyOutput($beispiel, $_POST['s'], $htmlID);
    19. }
    20. ?>
    Alles anzeigen



    Wenn ihr die func.php auf eurem Webserver folgendermaßen mit '''func.php?s=2''' aufruft, dann solltet ihr in etwa folgenden Inhalt sehen

    Quellcode

    1. content2||ist 2 eine 2 eigene 2 die 2 einige 2 mit 2 Ihr 2 Datenbank 2 und 2 herzlichst 2 so 2 den 2 Tagen 2 Upload 2 Wir 2 Beiträge 2 dem 2 soll 2 Anfänger 2 der 2 Gratis-Hoster 2 Willkommen 2 in 2 und 2 Schreibt 2 Tos 2 W


    Vor den doppelten Tabulatorsymbolen steht hier content2.. danach ein Text.

    Da ihr bestimmt schon ein bisschen mit den AJAX Funktionen auf der formular.php gespielt habt, wisst ihr sicherlich, dass, wenn ihr auf die 2te Box klickt, diese mit dem Inhalt der Ausgabe gefüllt wird.

    Jetzt kommt JavaScript zum Einsatz. Betrachtet Zeile 40...

    Quellcode

    1. update = response.split('||');
    2. for(i=0; i<update.length; i+=2) {
    3. document.getElementById(update[i]).innerHTML = update[i+1];
    4. }


    Der gelesene Inhalt wird erst in ein Array gesplittet und dann wird dem HTML Element "content2" der Inhalt des nächsten Array Elements zugeordnet

    Das Array würde im genannten Beispiel folgendermaßen aussehen

    Quellcode

    1. array[0] = content2
    2. array[1] = ist 2 eine 2 eigene 2 die 2 einige 2 mit 2 Ihr 2 Datenbank 2 und 2 herzlichst 2....

    38.389 mal gelesen