2016-10-24 1 views
0

Ich benutze Ajax, um POST-Werte von einem Formular zu erhalten. Wenn ich jedoch versuche, die Formularwerte beim Senden in eine Datenbank einzufügen, wird sie nicht eingefügt. Ich habe immer noch keine Ahnung, warum es nicht funktioniert.Zugriff auf POST-Werte von Ajax in PHP gesendet

Hier ist mein HTML

<form method="post" action="" id="home-sign-up-form"> 
    <input type="text" name="suFirstName" placeholder="First Name" class="text-input-minor" id="sign-up-first-name-text-input"> 
    <input type="text" name="suLastName" placeholder="Last Name" class="text-input-minor" id="sign-up-last-name-text-input"> 
    <input type="text" name="suEmail" placeholder="Email" class="text-input-minor" id="sign-up-email-text-input"> 
    <input type="password" name="suPassword" placeholder="Password" class="text-input-minor" id="sign-up-password-text-input"> 
    <input type="password" name="suConfirmPassword" placeholder="Confirm Password" class="text-input-minor" id="sign-up-confirm-password-text-input"> 
    <input type="text" name="suDisplayName" placeholder="Display Name (you can change this later)" class="text-input-minor" id="sign-up-display-name-text-input"> 
    <br><font class="text-error" id="sign-up-error-text"></font><br> 
    <label><input type="checkbox" name="suRememberMe" value="yes" id="sign-up-remember-me-checkbox"><font id="sign-up-remember-me-text">Remember me</font></label> 
    <input name="signUp" type="submit" value="Sign Up" id="sign-up-submit"> 
</form> 

Mein JS (das erste console.log geht durch und Arbeit):

if (validForm) 
{ 
    console.log("valid form"); 
    console.log(JSON.stringify($('#home-sign-up-form')[0].seriaize())); 
    $.ajax(
    { 
     type:'POST', 
     url:'form-submit.php', 
     data:$('#home-sign-up-form')[0].serialize(), 
     success:function(response) 
     { 
      $suForm.hide(); 
      $tosppText.hide(); 
      $mailSentIcon.show(); 
      $emailSentText.show(); 
      $emailSentTextEmail.text($suEmail); 
      $suBox.css("padding-left", "10px"); 
      $suBox.css("padding-right", "10px"); 
     } 
    });  
} 

Und mein PHP/MySQL:

<?php require 'dbconnect.php'; ?> 
if (isset($_POST['suEmail'])) 
{ 
    echo "<script type='text/javascript'>alert('got');</script>"; 
    $suFirstName = mysqli_real_escape_string($_POST['suFirstName']); 
    $suLastName = mysqli_real_escape_string($_POST['suLastName']); 
    $suEmail = mysqli_real_escape_string($_POST['suEmail']); 
    $suPassword = mysqli_real_escape_string($_POST['suPassword']); 
    $suDisplayName = mysqli_real_escape_string($_POST['suDisplayName']); 
    $code = substr(md5(mt_rand()),0,15); 

    $query = $connection->query("INSERT INTO users (firstName,lastName,email,password,displayName,confirmCode,verified)Values('{$suFirstName}','{$suLastName}','{$suEmail}','{$suPassword}','{$suDisplayName}','{$confirmCode},'{$verified}')"); 
} 

Die Warnung im PHP-Code, so würde ich annehmen, dass es nicht die "SignUp" POST-Variable erhält. Vielen Dank! Jede Hilfe wird geschätzt! : D

+0

legte eine 'console.log (Antwort)' als die erste Zeile des Erfolgs-Callback, um zu sehen, was Sie bekommen zurück (wenn überhaupt) ... auch fügen Sie etwas Fehlerbehandlung hinzu ... überprüfen Sie die Browser-Konsole auf Fehler in der Anfrage (zB Basic Debugging) –

+0

'das erste console.log funktioniert und läuft '- was ist mit dem zweiten –

+0

Ihre SQL-Einfügung funktioniert nicht als PHP Code, coz Sie '?>' in der ersten Zeile einschließen –

Antwort

0

$("#home-sign-up-form").submit(function(event) { 
 
    alert("Handler for .submit() called."); 
 
    event.preventDefault(); 
 
    $.ajax({ 
 
    type: 'POST', 
 
    url: 'form-submit.php', 
 
    data: $('#home-sign-up-form').serialize(), 
 
    success: function(response) { 
 
     console.log(response); 
 
     var data = JSON.parse(response); 
 
     $suForm.hide(); 
 
     $tosppText.hide(); 
 
     $mailSentIcon.show(); 
 
     $emailSentText.show(); 
 
     //$emailSentTextEmail.text($suEmail); 
 
     $emailSentTextEmail.text(data.suEmail); 
 
     $suBox.css("padding-left", "10px"); 
 
     $suBox.css("padding-right", "10px"); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<form method="post" action="" id="home-sign-up-form"> 
 
    <input type="text" name="suFirstName" placeholder="First Name" class="text-input-minor" id="sign-up-first-name-text-input"> 
 
    <input type="text" name="suLastName" placeholder="Last Name" class="text-input-minor" id="sign-up-last-name-text-input"> 
 
    <input type="text" name="suEmail" placeholder="Email" class="text-input-minor" id="sign-up-email-text-input"> 
 
    <input type="password" name="suPassword" placeholder="Password" class="text-input-minor" id="sign-up-password-text-input"> 
 
    <input type="password" name="suConfirmPassword" placeholder="Confirm Password" class="text-input-minor" id="sign-up-confirm-password-text-input"> 
 
    <input type="text" name="suDisplayName" placeholder="Display Name (you can change this later)" class="text-input-minor" id="sign-up-display-name-text-input"> 
 
    <br><font class="text-error" id="sign-up-error-text"></font> 
 
    <br> 
 
    <label> 
 
    <input type="checkbox" name="suRememberMe" value="yes" id="sign-up-remember-me-checkbox"><font id="sign-up-remember-me-text">Remember me</font> 
 
    </label> 
 
    <input name="signUp" type="submit" value="Sign Up" id="sign-up-submit"> 
 
</form> 
 

 
<?php 
 
if (isset($_POST['suEmail'])) 
 
{ 
 
    $con=mysqli_connect("localhost","root","cakpep","backoffice"); 
 

 
    // Check connection 
 
    if (mysqli_connect_errno()) { 
 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
 
    } 
 
    $suFirstName = mysqli_real_escape_string($con,$_POST['suFirstName']); 
 
    $suLastName = mysqli_real_escape_string($con,$_POST['suLastName']); 
 
    $suEmail = mysqli_real_escape_string($con,$_POST['suEmail']); 
 
    $suPassword = mysqli_real_escape_string($con,$_POST['suPassword']); 
 
    $suDisplayName = mysqli_real_escape_string($con,$_POST['suDisplayName']); 
 
    $code = substr(md5(mt_rand()),0,15); 
 

 
    $query = $connection->query("INSERT INTO users (firstName,lastName,email,password,displayName,confirmCode,verified)Values('{$suFirstName}','{$suLastName}','{$suEmail}','{$suPassword}','{$suDisplayName}','{$confirmCode},'{$verified}')"); 
 
    echo json_encode($_POST); 
 
} 
 
?>

  • dieses Add auszulösen, wenn Form $ ("# Home-Sign-up-Form") submit (function (event) {

    .
  • und dann auf PHP geben Sie die Antwort mit JSON-Zeichenfolge zurück echo json_encode ($ _ POST);

  • und dann in der Antwort ajax parsen JSON-Text zu Objekt wie diese var data = JSON.parse (Antwort); $ emailSentTextEmail.text (data.suEmail);
  • ich das hoffen, was Sie wollen ..
Verwandte Themen