Ajax & HTML Formulare --> POST Problem

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

  • Ajax & HTML Formulare --> POST Problem

    Hallo zusammen

    Hab schon den halben Tag damit verbracht zu googeln aber finds einfach nid oO.. obwohls wahrscheindlich ziemlich banal ist.

    Also ich hab ein normales HTML Formular und schicke es per post Methode an meine Ajax Funktion sendRequest

    Quellcode

    1. function sendRequest(id) {
    2. req.open('get', '_includes/ajax.switch.php?section=' + id);
    3. req.onreadystatechange = handleResponse;
    4. req.send(null);
    5. }

    Diese soll nun das PHP File "ajax.switch.php" aufrufen welches eigentlich die Daten aus dem Formular verarbeiten sollte.
    Doch die Daten sind nicht mehr da. Sprich

    Quellcode

    1. echo $_POST['hillfeee'];

    gibt nix aus.

    Nun wie krieg ich die POST Daten rüber ins PHP? die daten an die url hängen (also get) muss ich ausschliessen da mir da zuwenig zeichen zur verfügung stehen.

    eine lösung wäre eventuell das ich mittels javascript die zuerst die postdaten abfange. die open methode auf von get auf post wechsle und dann ganz unten in der ajaxfunktion bei send diese dort an das php sende. nur dazu müsste ich ja für jedes verschiedene formular eine eigene sendRequest funktion schreiben und ich glaub das kanns nicht sein.. oder doch?
  • Wenn ich dich richtig verstanden habe willst du onSubmit eines HTML Forumlars die POST Daten an deine switch.php senden die im hintergrund geajaxt wird ?

    Möglichkeit wäre es, es so zu lösen :

    Quellcode

    1. <form method="post" onSubmit="send_req(this.feld1.value);">
    2. <input type="text" name="feld1" />
    3. <input type="submit" value="Senden" />
    4. </form>


    Quellcode

    1. function sendRequest(feld1) {
    2. req.open('post', '_includes/ajax.switch.php?section=' + feld1);
    3. req.onreadystatechange = handleResponse;
    4. req.send(null);
    5. }


    Ich benutze normalerweise die Ajax.Request Class, weiss also nicht genau wie das mit dem 'post' beim request open läuft. Die Ajax.Request klasse kann definitiv Post data senden.
    Ich find meine Variante allerdings noch sehr unelegent, mal sehn vielleicht fällt mir nochwas anderes ein.
  • Gut, das kannste aber imgrunde mit nem Array lösen.
    Wäre dann der 2te Schritt.

    this.getElementByTagName('input');

    Du übergibst der send_request funktion nur die id oder den namen der FORM.
    anhand des formElements kannst du alle Tags und values einlesen

    Jetzt kommt nur der Punkt der mir persönlich aufn Sack gehen würde.
    Du musst den Array durchlaufen der dir den ParameterString für die übergabe mit open aneinanderfügt.

    Geh aber warscheinlich nicht anders da du über JS gehen musst.
    Du kannst den POST Array ja nicht auf herkömmliche weise senden, weil dazu bräuchtest dun refresh.

    Ich will irgendwie von diesem läßtigen req.open String-Übergebungsformat weg.

    Hab gerade recherchiert nach "POST Daten per Java versenden".
    Das geht anscheinend nur mit der Java "Connection Class". Denke aber er aufwand ist es dann vielleicht doch nicht wert.

    Gruß
    Tom