Ajax mit PHP

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

  • Ajax mit PHP

    Hallo leute, ich hab ne lurze Frage:

    Wenn ich es richtig verstanden habe, dann gibt man eine JavaScript-Funktion an, die dann an den Server geschickt wird. Und der Server führt dann das aus, was in der Funktion steht. Wie aber schicke ich jetzt eine SQL-Query mit PHP an den Server??? Wie schreibe ich das in die Funktion
  • hi,
    weiß nicht ob du das wirklich richtig verstanden hast..
    javascript wird weiterhin auf dem client ausgeführt.. nur besteht eine ständige verbindung zwischen [coderwiki]Informationen/Client[/coderwiki] und server.. und so können inhalte vom server live nachgeladen werden

    hier mal ein kleines tut:

    index.html

    Quellcode

    1. <html><head><script type="text/javascript">
    2. <!--
    3. function createRequestObject() {
    4. var ro;
    5. var browser = navigator.appName;
    6. if(browser == "Microsoft Internet Explorer"){
    7. ro = new ActiveXObject("Microsoft.XMLHTTP");
    8. }else{
    9. ro = new XMLHttpRequest();
    10. }
    11. return ro;
    12. }
    13. var http = createRequestObject();
    14. function sndReq(action) {
    15. http.open('get', 'rpc.php?action='+action);
    16. http.onreadystatechange = handleResponse;
    17. http.send(null);
    18. }
    19. function handleResponse() {
    20. if(http.readyState == 4){
    21. var response = http.responseText;
    22. var update = new Array();
    23. if(response.indexOf('|' != -1)) {
    24. update = response.split('|');
    25. document.getElementById(update[0]).innerHTML = update[1];
    26. }
    27. }
    28. }//-->
    29. </script></head>
    30. <body>
    31. <a href="javascript:sndReq('foo')">Bitte Inhalt nachladen</a>
    32. <div id="foo">
    33. </div>
    34. </body>
    Alles anzeigen


    rpc.php

    Quellcode

    1. <?
    2. echo "foo|".inhalt_funktion($_GET['action']);
    3. function inhalt_funktion($var)
    4. {
    5. //$sql....
    6. return 'ich bin der ajax inhalt';
    7. }
    8. ?>
  • Hallo,
    bin zufällig auf dein "tutorial" gestoßen. Gefällt mir soweit sehr gut da es genau das ist was ich brauche. Es ist sehr einfach gehalten.
    Leider habe ich ein Problem beim erweitern des Codes.
    ich will z.b. ein

    Quellcode

    1. <div id="footer"></div>
    mit Daten aus dem PHP script füllen. Aber zusätzlich zu deinem Bereits vorhandenen

    Quellcode

    1. <div id="foo"></div>
    .
    Das Problem scheint zu sein das das Javascript das zweite

    Quellcode

    1. echo "footer|".inhalt_funktion2($_GET['action']);

    nichtmehr richtig verarbeiten kann um den zweiten <div tag zu füllen.
    Hast du vielleicht eine Lösung für das Problem?
    Hier noch meine Spartanischen AJAX versuche:

    Quellcode

    1. <html><head><script type="text/javascript">
    2. <!--
    3. function createRequestObject() {
    4. var ro;
    5. var browser = navigator.appName;
    6. if(browser == "Microsoft Internet Explorer"){
    7. ro = new ActiveXObject("Microsoft.XMLHTTP");
    8. }else{
    9. ro = new XMLHttpRequest();
    10. }
    11. return ro;
    12. }
    13. var http = createRequestObject();
    14. function sndReq(action) {
    15. http.open('get', 'rpc.php?action='+action);
    16. http.onreadystatechange = handleResponse;
    17. http.send(null);
    18. }
    19. function handleResponse() {
    20. if(http.readyState == 4){
    21. var response = http.responseText;
    22. var update = new Array();
    23. if(response.indexOf('foo|' != -1)) {
    24. update = response.split('|');
    25. document.getElementById(update[0]).innerHTML = update[1];
    26. }
    27. }
    28. }
    29. function sndReq2(action) {
    30. http.open('get', 'rpc.php?footer='+action);
    31. http.onreadystatechange = handleResponse2;
    32. http.send(null);
    33. }
    34. function handleResponse2() {
    35. if(http.readyState == 4){
    36. var response = http.responseText;
    37. var update = new Array();
    38. if(response.indexOf('footer|' != -1)) {
    39. update = response.split('||');
    40. document.getElementById(update[0]).innerHTML = update[1];
    41. }
    42. }
    43. }
    44. //-->
    45. </script></head>
    46. <body>
    47. <table width="80%" border="0" cellspacing="0" cellpadding="0">
    48. <tr>
    49. <td><a href="javascript:sndReq('foo1')">Bitte Seite1 zeigen</a> | <a href="javascript:sndReq('foo2')">Bitte Seite2 zeigen</a> | <a href="javascript:sndReq2('footer')">Bitte footer zeigen</a></td>
    50. </tr>
    51. <tr>
    52. <td><div id="foo"></div></td>
    53. </tr>
    54. </table>
    55. <div id="footer"></div>
    56. </body>
    Alles anzeigen

    Quellcode

    1. <?
    2. echo "foo|".inhalt_funktion($_GET['action']);
    3. function inhalt_funktion($var)
    4. {
    5. if($_GET[action]=="foo1")
    6. {
    7. return 'Inhalt der ersten Seite';
    8. }
    9. elseif($_GET[action]=="foo2")
    10. {
    11. return 'Inhalt der zweiten Seite';
    12. }
    13. }
    14. echo "|";
    15. echo "footer|".inhalt_funktion2($_GET['action']);
    16. function inhalt_funktion2($var)
    17. {
    18. if($_GET[footer]=="footer")
    19. {
    20. return 'Inhalt footer';
    21. }
    22. elseif($_GET[footer]=="foo2")
    23. {
    24. return 'Inhalt footer2';
    25. }
    26. }
    27. ?>
    Alles anzeigen

    hab versucht eine Lösung zu finden aber ohne Erfolg. Bei einem klick auf Bitte footer zeigen kommt als Ausgabe: footer|Inhalt footer.
    Das wird allerdings in den <div id=foo tag geschrieben und nicht wie gewünscht in den id=footer tag.
    Der Rest funktioniert wie gewollt ( wechsel zwischen den beiden Texten).