Ich versuche, Formulardaten über AJAX zu buchen.AJAX serialisierte Daten leer
Wenn ich die AJAX-Funktion entferne und eine Standardformular-POST-Methode ausführe, werden die Daten in DB-Fein eingefügt. Wenn ich console.log
die serialisierten Daten des Formulars abschicke zeigt es sich an.
Wenn die AJAX-Funktion ausgelöst wird, verschwinden die Daten scheinbar. Die Funktion wird als Erfolg ausgelöst, es werden jedoch keine Daten eingefügt und die Variable formdata ist scheinbar leer. Kann jemand Licht darauf werfen?
Hier ist der Code so weit -
jQuery/AJAX -
$('#calendar-form').submit(function() {
var formdata = $(this).serialize();
console.log(formdata);
$.ajax({
url: "insert.php",
type: "POST",
data: formdata,
success: function() {
alert('success')
},
error: function() {
alert('ERROR');
}
});
return false;
});
HTML
<form id="calendar-form" action="" method="" accept-charset="utf-8">
<input type="text" name="name" id="name">
<input type="text" name="email" id="email">
<input type="hidden" name="site" id="site" value="<? echo $_SERVER['HTTP_HOST'] ?>">
<input class="submit" type="submit" name="submit" value="Submit">
</form>
PHP
try {
$bd = new PDO("mysql:host=localhost;dbname=;charset=utf8", "", "");
// $bd->setAttribute(PDO::ATT_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Theres been an error while attempting to connect to the database';
}
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$site = $_POST['site'];
$sql = "INSERT INTO `users`(`name`, `email`, `site`) VALUES ('$name', '$email', '$site')";
try {
$query = $bd->prepare($sql);
$query->bindValue(':name', $name, PDO::PARAM_STR);
$query->bindValue(':email', $email, PDO::PARAM_STR);
$query->bindValue(':site', $site, PDO::PARAM_STR);
if($query->execute()){
echo "Success";
}else{
echo "Failure";
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
Hinweis: Ich habe DB-Details für diesen Beitrag entfernt, aber sie sind in Code vorhanden.
Console
name = Benji & email = email% 40email.com & site = localhost% 3A8888 - scripts.min.js: 9: 117
Netzwerk
Sie verwenden keine vorbereiteten Anweisungen richtig .. Verwenden Sie Platzhalter als Werte .. Werfen Sie keine Postdaten in – Akintunde007
Können Sie einen Blick auf die Registerkarte Netzwerk Ihres Entwicklertools werfen, um diese Anfrage zu analysieren? –
Was bedeutet ein print_r ($ _ POST); Rückkehr? – Akintunde007