2016-10-23 6 views
1

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.Ajax PHP nicht in MySQL-Datenbank einfügen

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 (die console.log durch und Arbeit geht):

if (validForm) 
{ 
    console.log("valid form"); 
    $.ajax(
    { 
     type:'POST', 
     url:'form-submit.php', 
     data:$('#home-sign-up-form').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:

if (isset($_POST['signUp'])) 
{ 
    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 davon ausgehen, dass es nicht die "SignUp" POST-Variable erhalten. Vielen Dank! Jede Hilfe wird geschätzt! : D

+0

können Sie Ihren gesamten js Code (das heißt von submition) – Satya

Antwort

0

Sie erhalten die SignUp Post Variable, wenn Sie auf die Schaltfläche klicken. Wenn Sie über einen Ajax-Aufruf schreiben, ist die Button-Variable nicht als Variable $ _POST verfügbar. Bitte überprüfen Sie jeden anderen Eingabewert.

Weitere Optionen sind have und versteckte Eingabe auf einen Wert gesetzt. Und überprüfen Sie es auf der Serverseite. Es ist jedoch besser, eine normale Eingabe von Formularen zu überprüfen, anstatt eine zusätzliche Eingabesteuerung zu haben.

+0

Hallo hinzuzufügen! Vielen Dank für Ihre Informationen! Ich änderte '(isset ($ _ POST ['signUp'])) j/h –

+0

^Ignoriere Kommentar Ich versehentlich gedrückt Enter –

+0

Hallo! Vielen Dank für Ihre Informationen! Ich änderte '(isset ($ _ POST ['signUp'])) in' (isset ($ _ POST ['suEmail'])) 'und es funktionierte immer noch nicht. Vielen Dank! –

0
$mysqli = new mysqli("localhost", "root", "", "test"); 
if (isset($_POST['signUp'])){ 
echo "<script type='text/javascript'>alert('got');</script>"; 
echo $suFirstName = mysqli_real_escape_string($mysqli,$_POST['suFirstName']); 
echo $suPassword = mysqli_real_escape_string($mysqli,$_POST['suPassword']); 
$sql="INSERT INTO users (`username`, `password`) VALUES ('$suFirstName', '$suPassword')"; 
if (!mysqli_query($mysqli,$sql)) { 
die('Error: ' . mysqli_error($mysqli)); 
}echo "1 record added";} 

Sie Änderungen in Ihrem Code