2016-06-07 9 views
4

Ich entwickle eine Anwendung, in der ich Formulardaten mit Ajax sende. Nachdem die Erfolgsfunktionsdaten in die Datenbank eingefügt wurden, werden jedoch keine Nachrichten angezeigt und die vollständigen Formulardaten werden an die URL angefügt. In diesem verwende ich "POST" -Methode. Warum diese Daten anhängen und keine Nachrichten an das Ergebnisfeld anzeigen.Nach dem Senden Formular mit Post-Methode Formular Daten an URL in PHP angehängt Warum?

Dies ist mein HTML-Code

<form class="form-horizontal form-label-left" id="myForm" novalidate> 
    <span class="section">Personal Info</span> 

    <div class="item form-group"> 
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="fname"> First Name <span class="required">*</span> 
     </label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <input id="fname" class="form-control col-md-7 col-xs-12" data-validate-length-range="6" data-validate-words="1" name="fname" placeholder="First Name" required="required" type="text"> 
     </div> 
    </div> 

    <div class="item form-group"> 
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="lname"> Last Name <span class="required">*</span> 
     </label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <input id="lname" class="form-control col-md-7 col-xs-12" data-validate-length-range="6" data-validate-words="1" name="lname" placeholder="Last Name" required="required" type="text"> 
     </div> 
    </div> 
    <div class="item form-group"> 
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="username"> Username <span class="required">*</span> 
     </label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <input id="username" class="form-control col-md-7 col-xs-12" data-validate-length-range="0,25" data-validate-words="1" name="username" placeholder="Username" required="required" type="text"> 
     </div> 
    </div> 
    <div class="item form-group"> 
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Email <span class="required">*</span> 
     </label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <input type="email" id="email" name="email" required="required" class="form-control col-md-7 col-xs-12" placeholder="[email protected]"> 
     </div> 
    </div> 
    <div class="item form-group"> 
     <label for="password" class="control-label col-md-3">Password <span class="required">*</span></label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <input id="password" type="password" name="password" data-validate-length="6,8" class="form-control col-md-7 col-xs-12" required="required"> 
     </div> 
    </div> 
    <div class="item form-group"> 
     <label for="password2" class="control-label col-md-3 col-sm-3 col-xs-12">Repeat Password</label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <input id="password2" type="password" name="password2" data-validate-linked="password" class="form-control col-md-7 col-xs-12" required="required"> 
     </div> 
    </div> 
    <div class="item form-group"> 
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="telephone">Telephone <span class="required">*</span> 
     </label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <input type="tel" id="telephone" name="telephone" required="required" data-validate-length-range="8,20" class="form-control col-md-7 col-xs-12"> 
     </div> 
    </div> 
    <div class="item form-group"> 
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="status">Status</label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <select id="status" name="status" class="form-control col-md-7 col-xs-12"> 
       <option>Select Status</option> 
       <option value="ACTIVE" >Active</option> 
       <option value="INACTIVE">Inactive</option> 
       <option value="VACATION">Vacation</option> 
      </select> 
     </div> 
    </div> 
    <div class="item form-group"> 
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="role">Role</label> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <select id="role" name="role" class="form-control col-md-7 col-xs-12"> 
       <option value="ACTIVE" >Select Role Name</option> 
       <option value="Manager" >Manager</option> 
       <option value="Operator">Operator</option> 
       <option value="Admin">Admin</option> 

      </select> 
     </div> 
    </div> 

    <div class="ln_solid"></div> 
    <div class="form-group"> 
     <div class="col-md-6 col-md-offset-3"> 
      <button type="reset" id="reset" class="btn btn-primary">Cancel</button> 
      <button id="send" type="submit" class="btn btn-success">Submit</button> 
     </div> 
    </div> 

    <div id="result"></div> 
</form> 

Nach übermittle ich js-Datei aufrufen, in dem ich bin mit Ajax.

ajax Funktion

function processForm(e){ 
    alert(e); 
    $.ajax({ 
     url: 'add_user_check.php', 
     dataType: 'text', 
     type: 'post', 
     contentType: 'application/x-www-form-urlencoded', 
     data: $(this).serialize(), 
     success: function(data, textStatus, jQxhr) 
     { 
      alert(data); 
      var split = data.split(','); 
      var display = split[0]; 
      var msg = split[1]; 

      $('#result').html(msg); 



     }, 
     error: function(jqXhr, textStatus, errorThrown){ 
      $('#result').html("Connection error :"+errorThrown); 

     } 
    }); 

    e.preventDefault(); 
} 

$('#myForm').submit(processForm); 

Wenn Daten erfolgreich abgegeben wird zurückgegeben Meldung Erfolg und wird angezeigt Feld führen. Die Nachricht wird jedoch nicht angezeigt und die vollständigen Daten werden an die URL angehängt. Wie in Abb. enter image description here Warum passiert das? und warum es keine korrekte Nachricht zum Ergebnisfeld anzeigt.

Vielen Dank im Voraus.

+0

Können Sie Ihre Daten gemeinsam nutzen PHP verwenden? Zumindest die Antwort? – Jurik

+1

Und Sie sollten die Standardverwendung von Formular in Ihrer ProcessForm-Funktion 'e.preventDefault()' verhindern - andernfalls wird Ihr Formular auch übermittelt. – Jurik

+0

Ihr Formular wird gesendet und Ihre Ajax-Funktion wurde nie aufgerufen oder das Formular wird nach dem Aufruf der Ajax-Funktion gesendet. – Poria

Antwort

1

Verwenden Sie Methode = "Post" in HTML-Formular.

+0

Er schrieb, dass die Daten in der Datenbank gespeichert werden und die Art, wie er Ajax verwendet, er braucht nicht die Formularmethode. – Jurik

3

Kurz gesagt, weil es keinen echten Fehler gibt. PHP bearbeitet Ihre Anfrage nicht und geht somit normal weiter. Die URL hat die POST-Daten wie üblich dort stecken, nur wird es nicht geleert, da es nicht umgeleitet wird.

Dies liegt daran, dass Sie keine Methode für das Formular angegeben haben.

Sie benötigen

<form method="post" ....

+0

Er schrieb, dass die Daten in der Datenbank gespeichert werden und die Art, wie er Ajax verwendet, er braucht nicht die Formularmethode. – Jurik

Verwandte Themen