Antworten auf deine Fragen:
Neues Thema erstellen

[PHP & jQuery] Submit verhindern?

GeKiller

Liqu1d

Hey, daher das sowohl zu PHP, als auch zu jQuery gehört habe ich das auch mal so im Titel angepasst.

Erst einmal das grundlegende:
Ich validiere die form mit dem jQuery Validation Plugin und das funktioniert auch soweit aber wie kann ich verhindern, das die Form" submitted?" wird, wenn die Daten halt inkorrekt sind?

Bei gar keiner Eingabe usw. schaltet sich dann ja das .validate ein aber wie sage ich, wenn ich hier in diesem PHP Zweig lande, das die Form nicht abgeschickt werden soll?

PHP:
else // Die Benutzereingaben stimmen nicht!
{
    echo '<p style="text-align: center; color: red">Der Benutzername oder das Passwort ist oder sind falsch.</p>';
    header ("Refresh:3; url=index.php?site=backend-login");
}

Hier wird dann ja die Form abgeschickt und die Meldung wird angezeigt und dann landet man wieder beim Login aber wie verhindere ich hier das abschicken? Ich wollte dann gerne mit jQuery eine kleine Meldung anzeigen, was man ja warscheinlich hier auch mit success einfügen kann aber wie verhindere ich dann bei dem PHP Zweig oben, das die Form abgeschickt wird?!

Javascript:
$('#loginForm').validate(
{
    rules:
    { 
        User: "required",
        Password: "required"
     },
     messages:
     {
         User: "Bitte geben Sie einen Benutzernamen ein!<br />",
         Password: "Bitte geben Sie ein Passwort ein!!<br />",
      },  
  .....
});
 

owieortho

Aktives Mitglied

Damit PHP als serverseitige Sprache aktiv wird, muss natürlich der submit-button geklickt werden. Dein oben gezeigtes Codeschnipsel zeigt dann die Reaktion auf einen Zustand. Willst Du schon clientseitig die Submission verhindern, nutzt Du eine clientseitige Sprache (Javascript). Nur wenn das bei einem Nutzer deaktiviert ist, wird die Kontrolle durch das PHP-Skript durchgeführt.

O.
 

GeKiller

Liqu1d

Die "header"-Zeile bei Deinem else schickt das Formular ab. Da musst Du es ändern.

Daran liegt es nicht.
Wenn die Login Daten falsch oder unvollständig sind, dann kommt ja erst diese Meldung und dann wird man zurückgeschickt.
Die Form submitted sich ja auch selber, von daher liegt es ja wohl eher daran.

@owieortho
Ja, das ist mir schon klar. Ich wollte das ganze ja auf gar keinen Fall nur mit JS machen, das wäre ja auch schon was. ;)
Wenn ich jetzt bei der .validate Methode den submitHandler modifiziere, dann wird das abschicken der Form ja schon einaml verhindert aber wie sorge ich dann dafür, das bei Eingabe der richtigen Daten flag = true ist oder wie macht man das am besten?

Code:
var cont = false;

$('#login-form').validate(
{
    rules:
    {
        User: "required",
        Password: "required"
    },
    messages:
    {
        User: "Bitte geben Sie einen Benutzernamen ein!<br />",
        Password: "Bitte geben Sie ein Passwort ein!!<br />",
    }, 
    submitHandler: function(form)
    {
        if(cont)
            form.submit();
    },
});
 

afr0kalypse

Allwissendes Karmameerschweinchen!

Du benutzt jQuery. Dann nutze doch auch deren Funktionen.
Du benötigst jquery.ajax() und event.preventDefault()
Damit kannst du bei einem Click Event einen Ajax Call durchführen der Serverseitig dein PHP validiert und auf eine entsprechende Antwort wartet. Ist das Ergebnis da, wertest du es mit Javascript aus und verschickst das Formular oder verschickst es nicht mit preventDefault().

Wie es genau geht, kannst du dir bestimmt erarbeiten ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben