Ajax & HTML Formulare --> POST Problem

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • 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

    Source Code

    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

    Source Code

    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 :

    Source Code

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


    Source Code

    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.
  • hmm ja so weit bin ich aber auch schon..

    den mein problem

    wenn mein zweites formular nun 2 inputfelder hat was mach ich dann?

    dann muss ich eine zweite sendRequest methode erstellen welche 2 parameter übergeben kann welche jedoch von "deinem" formular nicht benutzt werden kann..
  • 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