2017-03-13 4 views
0

Ich habe ein Formular, um Benutzer in eine Datenbank einzufügen. Auf der anderen Seite habe ich zwei Skripte der Passwort-Validierung und Ajax-Skript, die PHP-Ergebnis abrufen.Senden von Daten nach der Passwort-Validierung

Im Moment arbeiten die beiden Skripte separat.

Was soll ich tun, damit das Ajax-Skript nach der Kennwortüberprüfung ausgeführt wird?

Passwort Validation

function Validate() { 
     var password = document.getElementById("UserPwd").value; 
     var confirmPassword = document.getElementById("ConfirmUserPwd").value; 
     if (password != confirmPassword) { 
      alert("Please enter the same password"); 
      return false; 
     } 
     return true; 
    } 

Script

$.ajax({ 
     url: "insert_sp.php", 
     method: "POST", 
     data: {submit: 'true'}, 
     success: function(response) { 

     var data = JSON && JSON.parse(response) || $.parseJSON(response); 
     alert(data); 
    } 
}); 

aktualisieren

isset: if(isset($_POST['Submit']))

Taste: <input type="submit" name="Submit" value="Submit"/>

$(function() { 
    $("#myForm").on("sumbit", function(e) { 
    e.preventDefault(); 
    var password = $("#UserPwd").val(), 
     confirmPassword = $("#ConfirmPassword").val(); 
    if ($.trim(password) === password && 
     password !== "" &&    
     password === confirmPassword) { 
     $.ajax({ 
     url: "insert_sp.php", 
     method: "POST", 
     data: { 
      submit: 'true' 
     }, 
     success: function(response) { 
      var data = JSON && JSON.parse(response) || $.parseJSON(response); 
      alert(data); 
     } 
     }); 
    } 
    else { 
     alert("Please enter the same password"); 
    } 
    }); 
}); 
+0

entworfen arbeiten http://stackoverflow.com/questions/25970071/how-to-perform-some-action-before-submit-form-via -ajaxform das könnte helfen –

+0

Jetzt macht die Frage keinen Sinn mehr - aber Sie müssen noch ändern "submit: 'true" 'to' Submit:' true '' – mplungjan

Antwort

2
  1. rufen Sie niemals etwas "Eintragen" in einem Formular. Es wird das Submit-Ereignis ausblenden, wenn Sie es brauchen.

  2. Verwenden Sie das Formular Veranstaltung und Event.preventDefault statt Submit-Buttons Ereignisse klicken

  3. Wenn Sie jQuery haben, warum es nicht den ganzen Weg benutzen?

  4. Denken Sie daran, die genau die gleiche Validierung auf dem Server zu tun, bevor

Einsetzen kann ich nicht, dass Sie einen laufenden Schnipsel machen, weil so nicht in ihren Seiten einreichen zulässt. Hier ist der Code - es sollte als

$(function() { 
    $("#myForm").on("submit", function(e) { 
    e.preventDefault(); // cancel form submission 
    var password = $("#UserPwd").val(), 
     confirmPassword = $("#ConfirmPassword").val(); 
    console.log(password,confirmPassword) 
    if ($.trim(password) === password && // spaces? 
     password !== "" && // empty? 
     password === confirmPassword) { // the same? 
     $.ajax({ 
     url: "insert_sp.php", 
     method: "POST", 
     data: { 
      Submit: 'true' // remember to change the $_POST test too 
     }, 
     success: function(response) { 
      var data = $.parseJSON(response); 
      console.log(data); 
     } 
     }); 
    } else { 
     alert("Please enter the same password"); 
    } 
    }); 
}); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<form id="myForm"> 
    <input type="password" value="" id="UserPwd" /><br/> 
    <input type="password" value="" id="ConfirmPassword" /><br/> 
    <input type="submit" name="Submit" value="Submit" /> 
</form> 
+0

Ist Ihr Punkt von _Never rufen Sie nichts "senden" in einer form_ beziehen sich auf die reicht die Schaltfläche ein? Ich bin ein Anfänger und versuche zu verstehen. Gibt es etwas anderes, wenn ich dir sage, dass ich 'if (isset ($ _ POST ['submit']))' für das Senden verwende? –

+0

Der Punkt ist, dass form.submit nicht mehr ein Ereignis sein wird, sondern die Schaltfläche. Ändern Sie einfach die $ _POST ['submit'] zu $ ​​_POST ['Submit'] oder etwas anderem und ändern Sie den Namen der Schaltfläche in Submit, wenn Sie es brauchen. – mplungjan

+0

Okay, ich verstehe es. Ich habe Ihre Lösung versucht, aber wenn ich differents Passwort eingegeben habe, werden die Daten immer noch an die db gesendet. @mplungjan –

0

Machen Sie eine andere functuon von Ajax-Anforderung nach Kennwortüberprüfung, wenn der Erfolg dann wie unter Ajax-Funktion aufrufen.

function ajax_request(){ 
$.ajax({ 
url: "insert_sp.php", 
method: "POST", 
data: {submit: 'true'},  
success: function(response) { 
var data=JSON&&JSON.parse(response)||$.parseJSON(response); 
alert(data); 
console.log(data); 
} 
}); 

function Validate() { 
var password = document.getElementById("UserPwd").value; 
var confirmPassword = document.getElementById("ConfirmPassword").value; 
if (password == confirmPassword) { 
ajax_request();    
}else{ 
alert("Wrong Password"); 
return false; 
} 
} 
+0

Hai @bharatsavani. Könnten Sie mich auf Ihren Punkt bringen _Make andere Funktion von Ajax Anfrage nach Passwortvalidierung_? Ich bin irgendwie verloren. –

+0

Sie haben das erforderliche Passwort korrekt eingegeben, wenn das Passwort korrekt ist, rufen Sie die einfache Logik der AJAX-Funktion auf. @Mint –

+0

Ich bekomme es jetzt, ich versuche deine Lösung, aber sie funktionieren nicht. Das Formular kann nicht übermittelt werden und es gibt keine Passwort-Validierung. Irgendeine Idee? @bharatsavani –

Verwandte Themen