AJAX Formular absenden

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

  • Dieser Code ist genau das, was ich die ganze zeit gesucht habe.
    Allerdings habe ich da ein kleines Problem, bei dem Du mir
    vielleicht helfen könntest.
    Und zwar geht es um folgendes:

    Ich möchte die 4 Boxen verarbeiten und die Variablen an eine weitere PHP weiterleiten. Wenn ich da jetzt einen "Anschicken" Button und ein zweites "<form method="post" action="suche.php"> einfüge und auf den Button draufklicke, dann passiert einfach nichts.
    Hast Du eine Idee wie ich das hinbekommen könnte ??
    Danke im Voraus.

    slayter

    "d0nUt" schrieb:

    finde das beispiel nicht so "schlüssig"

    wo werden denn die daten hergeholt? das ist doch nur ein typische beispielanwendung ohne realitätbezug...

    hab dir mal noch ein anderes beispiel erstellt


    formular.html

    Quellcode

    1. <html><head>
    2. <script type="text/Javascript">
    3. function createXMLHttpRequest() {
    4. var ua;
    5. if(window.XMLHttpRequest) {
    6. try {
    7. ua = new XMLHttpRequest();
    8. } catch(e) {
    9. ua = false;
    10. }
    11. } else if(window.ActiveXObject) {
    12. try {
    13. ua = new ActiveXObject("Microsoft.XMLHTTP");
    14. } catch(e) {
    15. ua = false;
    16. }
    17. }
    18. return ua;
    19. }
    20. var req = createXMLHttpRequest();
    21. function sendRequest(digit) {
    22. // **
    23. // Hier die wichtigen Änderungen. Quelle und Ziel übermitteln
    24. // **
    25. minus = digit-1;
    26. inhalt = document.getElementById('source' + minus );
    27. req.open('get', 'func.php?dest='+ digit + '&s=' + inhalt.value);
    28. req.onreadystatechange = handleResponse;
    29. req.send(null);
    30. }
    31. function handleResponse() {
    32. if(req.readyState == 4){
    33. var response = req.responseText;
    34. var update = new Array();
    35. if(response.indexOf('||' != -1)) {
    36. update = response.split('||');
    37. document.getElementById(update[0]).innerHTML = update[1];
    38. }
    39. }
    40. else
    41. alert("loading" + ajax.readyState);
    42. }</script>
    43. </head>
    44. <body>
    45. <form method="post" action="">
    46. <div style="float:left" id="select1">
    47. <select name="source1" id="source1" onChange="sendRequest(2)">
    48. <option value=""></option>
    49. <option value="test1">test1</option>
    50. <option value="test2">test2</option>
    51. <option value="test3">test3</option>
    52. <option value="test4">test4</option>
    53. </select>
    54. </div>
    55. <div style="float:left" id="select2" name="select2">
    56. </div>
    57. <div style="float:left" id="select3">
    58. </div>
    59. <div style="float:left" id="select4">
    60. </div>
    61. </form>
    62. </body></html>
    Alles anzeigen


    func.php

    Quellcode

    1. <?
    2. $next = $_GET['dest']+1;
    3. echo 'select'.$_GET['dest'].'|| ';
    4. echo '<select name="source'.$_GET['dest'].'" id="source'.$_GET['dest'].'" onChange="sendRequest('.$next.')">';
    5. //Hier sollte eine MySQL FUnktion sein, zum Test reichts aber $_GET['s'] enthält den wert
    6. echo '<option value=""></option>';
    7. echo '<option value="asdasd">asdasd</option>';
    8. echo '<option value="asdasd">asdasd</option>';
    9. echo '<option value="asdasd">asdasd</option>';
    10. echo '</select>';
    11. ?>
    Alles anzeigen
  • Beim Abschicken des Buttons sollen die felder der Boxen an eine weitere PHP Datei weitergeleitet werden, damit ich einen XML-Request durchführen kann.
    Also praktisch wie bei einem ganz normalen Formular, wo die Daten weiterverarbeitet werden. Nach dem die Boxen ausgefüllt worden sind, müsste ich eigentlich nur die <form method> ändern können.
    Ich weiss aber leider nicht, wie ich das machen soll.

    slayter


    "d0nUt" schrieb:

    naja, <form>'s kann man nicht schachteln
    was soll den beim abschicken des buttons passieren...

    der code behandelt ja nur das ändern der select felder
    musst uns schon deinen code zeigen, damit wir dir helfen können
  • habe das jetzt hinbekommen. habe einfach einne Button eingefüht und in <form method> die entsprechende Datei eingfügt. Vorhin wollte das nicht gehen..jetzt klappt das auf einmal..komisch !!

    wie kann ich eigentlich den Abstand zwischen den Einzelnen Boxen ändern ?? Desweitern weiss ich nicht wie ich an die Daten der weiteren Boxen rankomme. Bei der Ausgangsbox ist es ganz einfach. Da steht die Werte in $_POST[source1] drin und wo stehen die Werte in den anderen Boxen ??

    slayter


    "slayter" schrieb:

    Beim Abschicken des Buttons sollen die felder der Boxen an eine weitere PHP Datei weitergeleitet werden, damit ich einen XML-Request durchführen kann.
    Also praktisch wie bei einem ganz normalen Formular, wo die Daten weiterverarbeitet werden. Nach dem die Boxen ausgefüllt worden sind, müsste ich eigentlich nur die <form method> ändern können.
    Ich weiss aber leider nicht, wie ich das machen soll.

    slayter


    "d0nUt" schrieb:

    naja, <form>'s kann man nicht schachteln
    was soll den beim abschicken des buttons passieren...

    der code behandelt ja nur das ändern der select felder
    musst uns schon deinen code zeigen, damit wir dir helfen können
  • "slayter" schrieb:

    Desweitern weiss ich nicht wie ich an die Daten der weiteren Boxen rankomme. Bei der Ausgangsbox ist es ganz einfach. Da steht die Werte in $_POST[source1] drin und wo stehen die Werte in den anderen Boxen ??


    so wie du sie genannt hast.
    in dem beispielcode oben wären es $_POST[source1] - $_POST[source4]

    findest übrigens raus, was alles gesendet wird indem du einfach POST ausgibst

    Quellcode

    1. print_r($_POST);


    PS: Schick mal den Validator über deinen Code: http://validator.w3.org/