Wert aus JS-Funktion an PHP-Funktion übergeben

  • Hi,

    hab da ein Problem, mit dem ich mich schon mehrere Tag rumschlage:

    ich habe ein Formular mit 4 Eingabefeldern. In einem Feld wird ein Passwort eingetragen, das vor dem Abschicken des Formulars in der Datenbank überprüft werdn muss. Wenn es das PW in der DB schon gibt, muss der User ein anderes PW in das Formular eintragen.

    Das input-Feld:

    Code
    <input name="sneu_passwort" type="password" size="10" maxlength="10" > 
                <input type="button" value="&lt;&lt; Test" name="B2" onclick="testpw()">

    Die testpw():

    So vermeide ich ja, dass das Formular abgeschickt wird, bevor ich das Passwort überprüft habe.
    Ich habe mir den eingegebenen Wert durch alert mal anzeigen lassen. Nun möchte ich diesen Wert - also das Passwort - in der Datenbank überprüfen, ob dieses Passwort schon vergeben ist. Das geht in js nicht. Aber wie bekomme ich diesen Wert denn nun in eine php-funktion???
    Weiß das jemand???

  • Geht so einfach nicht.
    Von wegen Clientseitiges arbeiten mit JS und Serverseitiges mit PHP und so...

    Du musst die Seite neu laden und kannst das Passwort dann mit $_GET[] oder $_POST[] auslesen und dann mit der DB abgleichen.

    Hoffe geholfen zu haben.
    Wenn du dabei noch Hilfe brauchst, sag bescheid.

    Viele Grüße

    Mir nicht

  • Danke für deine schnelle Hilfe!!!!
    Aber ich kann doch erst mit $_POST den Wert rauslesen, wenn ich das Formular abgeschickt habe! Wäre ja eigentlich auch nicht das Problem, wenn da nicht schon wieder Schwierigkeiten auftreten würden: ich arbeite mit Sessions und da gehts schon los! Wenn ich das Formualr abgeschickt, das Passwort übeprüft habe, festgestellt habe, dass das PW bereits existiert und dann zum Formular zurückkehren will, sind alle bereits eingetragenen Werte aus dem Formular verschwunden. :cry: Ich dachte immer, dass das mit Sessions vermieden wird, zumal ich ja die Session-ID beim Einloggen des Users in der DB speicher. Was mach ich da falsch????? Wieso geht das alles nicht? Hast noch eine Antwort für mich??????

  • Klar! Ich hab so viele Antworten wie du Fragen stellst! ;)

    Du kannst die Werte in dein Formular wieder eintragen lassen.
    Dazu musst du aber die Werte auch in Sessionvariablen speichern.
    Früher hat man das mit session_register gemacht, heute sieht das so aus.

    Code
    $_SESSION['name_der_variable'] = Wertzuweisung;

    Diese kannst du dann überall verwenden, wo du die Seite mit session_start(); beginnst.

    Dann brauchst du in deine Eingabefelder nur noch als value den Namen der Sessionvariable eintragen und schon sind die Eingegebenen Daten wieder vorhanden.

    Ich habe wiedermal einen tollen Link dazu.
    Siehe auf der Seite weiter unten.

    Viele Grüße

    Mir nicht

  • Ich schlage AJAX vor...
    Der Client kann mit dem Server kommunizieren OHNE die Seite neu zu laden; funktionniert über die XML-Schnittstelle der Browser :D
    Und wie für alles Gute gibts auch hier schon ein tolles Framework: XAJAX
    du schreibst die Serverfunktion, includest xajax und er macht den Client-javascript und alles andere automtisch...
    LINK
    P.S. Reload sieht nicht schön aus ;)

  • warum nicht? Damit lassen sich Formulardaten an den Server schicken ohne die Seite neu zu laden. Also kann die Ueberpruefung problemlos stattfinden bevor alles abgeschickt wird. Und schoener siehts angesichsts des Web2.0-Trends eh aus ;)

    MfG
    Daniel

  • Wegen mir...
    Aber ich denke nicht, dass Agnes jetzt auf Ajax umsatteln möchte, wenn sie erstmal die Basics kennen lernen muss.

    Viele Grüße

    Mir nicht

  • Ich denke nicht dass sessions sowie das gesamte Handling so viel einfacher sind :)
    Wie bereits erwähnt muss man nur die xajax-Klasse aufrufen, was mit den vielen leicht verständlichen Beispielen in deren Wiki schnell geliengen sollte.

    Was man letztendlich wählt ist egal... solange man sein Ziel erreicht
    Das Ziel heiligt den Quellcode :P

  • Hallo Mir Nicht, hallo Daniel,

    finde ich es toll, dass ihr mir so engagiert helft. DANKE! Daniel, Mir Nicht hat Recht, ich muss aus zeitlichen Gründen die Session-Variante ausprobieren, da das Script eigentlich schon letztes WE fertig gewesen sein sollte. Und die anderen Module, die ich noch machen muss, stehen in der Warteschlange.

    Mir Nicht...Danke für den Vorschlag. Ich probier das gleich mal aus. Wenn du so viele Antworten hast, wie ich Fragen habe, dann werd ich mich mit Sicherheit nochmal melden. Besonders dann, wenn ich - wie ich mich kenne - mit den Session-Variablen Schwierigkeiten bekomme. :?

    Euch beiden besten Dank!!!!!

  • Hi Mir Nicht,

    hast noch ne Antwort?? Denn ich hab noch ne Frage:
    ich wusste doch, dass da wieder Probleme auftauchen. Also entweder steh ich aufm Schlauch, oder ich muss mal html wiederholen!!!!!

    Problem: wenn ich das Formular wieder herstellen möchte - also wenn das Passwort überprüft wurde und es bereits existiert, muss das ausgefüllte Formular ja wieder erscheinen - krieg ich die Werte nicht mehr in die Felder. Die SESSION-Variablen existieren weiterhin, aber wie krieg ich die in das Formular?? Irgendwie klappt das nicht. Kannst mri nochmal helfen????

  • Ich antworte mal an seiner Stelle ;)

    PHP
    <input name="FELDNAME" type="text" size="10" maxlength="10" value="<?php echo $_SESSION['variablenname'] ?>">

    Voraussetzung fuer das Snippet oben ist, dass die Session schon in einem weiteren CodeTeil initialisiert wurde und der Wert existiert.
    Andernfalls kannste es auch ueber echo ""; ausgeben, allerdings ist der Code so -in meiner Meinung- etwas einfacher zu bearbeiten und uebersehen
    MfG


    Daniel

  • Ist vielleicht etwas missverständlich ausgedrückt "die Arbeit mit mir" - ich meinte natürlich "die Arbeit, sie ihr mit mir habt". :)