Formulareingabe mit Javascript-Button übergeben

  • Hi,
    ich arbeite an einem Formular, das mit zwei Javascript-Buttons jeweils das selbe PHP-Script mit unterschiedlichen ?aktion-Parametern, sowie der Eingabe des einzigen "Text"-Feldes des Formulars aufrufen soll. Die Eingabe des "Text"-Feldes wird jedoch nicht mit übertragen. Wer weiss Rat?

    Hier der Quelltext:

    Danke für Eure Hilfe im Voraus.

    MfG
    6_freddy

  • Hi,

    du hast da etwas zu kompliziert gedacht.
    Javascript brauchst du dafür gar nicht, das geht nur mit PHP viel besser.
    Ich habe das Script etwas geändert und es selbst auch als Zieladresse genommen, speichere es dir mal unter dem Namen "stempel.php" und probiere es aus, dann wirst du das Prinzip sicherlich verstehen.

    Anschließend paßt du es einfach deinen Wünschen entsprechend an (z.B. die Zieladresse ändern):

    Guten Rutsch und Gruß aus der Marsch!

    Ronald

  • Hi Ronald,
    danke für die schnelle Antwort. Mein Problem ist allerdings, dass ich mit der Standard-Aktion "submit" nicht weiterkomme. Mit dem ?aktion-Parameter "k", bzw. "g" in meinen "on click"-events werden Funktionen aufgerufen, die unterschiedlich parametrisierte SQL-Strings erzeugen. Das Ganze ist ein Formular, um eine Zeiterfassungsanwendung zu bedienen und soll, nach Eingabe der MitarbNr in das Formular entweder mit einer Schaltfläche "Kommen", oder mit einer Schaltfläche "Gehen" geschaltet werden.

    Hier noch Auszüge aus den Funktionen von ChipCardStempWahl.php :

    Sollte das doch mit der "submit"-Aktion gehen, dann hab' wohl Deinen Code nicht kapiert und bitte herzlich um eine Aufhellung meiner geistigen Umnachtung.

    MfG
    6_freddy

  • Das hab ich jetzt nicht so ganz verstanden.

    Du kannst die Daten doch in deinem PHP-Script "ChipCardStemp.php" wieder umwandeln, mein Script war doch nur eine Demo, wie du die Daten bekommst.
    Also....
    1. (Eingabescript):

    2. Das PHP-Script "ChipCardStemp.php" beginnst du dann ganz einfach mit...:

    PHP
    <?php
    $MitarbNr = $HTTP_GET_VARS['MitarbNr']; 
    $aktion = substr(strtolower($HTTP_GET_VARS['aktion']),0,1);  // der erste Buchstabe wird als Kleinbuchstabe übergeben
    .... // dein weiteres Script

    Jenachdem welcher Absendebutton gedrückt wurde, erhält 'aktion' nun im Zielscript den Wert "k", "g" oder "" (keinen Wert bei 'Ändern') zugewiesen, danach kannst du mit dem Script genau so weiter arbeiten, wie du es ursprünglich geplant hattest.

    Noch mal zu deiner Javascript-Variante:
    Ohne ein Submit bekommst du die Daten nicht übertragen. Du müßtest dann zunächst dem Formular einen Namen geben, dann eine hidden-Feld einbauen, welches 'aktion' heißt. Beim Versenden muß dann durch ein Javascript dem Feld 'aktion' ein Wert zugewiesen werden. Anschließend muß das Javascript die Submit-Funktion ankicken.

    Das geht natürlich auch, ist aber wesentlich umständlicher und man hat u.U. eine Menge Fehlerquellen, bzw. wir sehen uns dann hier wahrscheinlich bald schon wieder bei der Fehlersuche im Javascript ;)

    Also mach's einfach mit PHP, das funktioniert sicherer und auch dann, wenn Javascript abgeschaltet ist.

    G.a.d.M.

  • Hi Ronald,
    heissen Dank für die Entwirrung meines Knotens. Jetzt hab' ich's kapiert :idea: . Das vereinfacht die ganze Sache entscheidend. Werd' ich gleich im neuen Jahr umsetzen. Bisher hab' ich mir mit einem vorgeschalteten Formular geholfen, das via "submit"-Aktion die Eingabe an mein Beispielformular überträgt. Dann konnte ich die Variable $MitarbNr mit meinen Javascript-Buttons übertragen. Aber schön war des net. Deine Lösung klingt da schon eleganter. Ich poste demnächst, wie's geklappt hat.
    MfG und Guten Rutsch ins Neue Jahr
    6_freddy :lol:

  • Hi Ronald,
    ich konnte natürlich nicht bis zum nächsten :wink: Jahr warten und musste deinen Tip gleich testen. Klappt hervorragend und ich hab' meine beiden Variablen zur weiteren Verarbeitung zur Verfügung. Ich hätte nicht gedacht, dass das so einfach ist.
    Dann kann ich ja auch die Überprüfung, ob eine gültige MitarbNr eingegeben wurde, in meinem nachfolgenden PHP-Script durchführen. Bisher hab' ich das nämlich auch per Javascript auf der Eingabeseite gelöst.
    Das wird noch 'ne richtig runde Sache, vielen Dank nochmal.
    MfGugRiNJ
    6_freddy :D :!: