Reputation: 21
Good morning, I have some issues calling ajax function success or error. My data is saved correctly in database. There is any other way to control DOM via jquery?
My form.php file looks like this.
<?php
// echo json_encode($_POST);
$server = 'mysql:host=xxxxx;dbname=xxxxxxxxxxxx';
$dbuser = 'xxxxxxxxxxx';
$dbpass = 'xxxxxxxxxxx';
try {
$db = new PDO($server, $dbuser ,$dbpass);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$query = $db -> prepare('INSERT INTO contact (namec,emailc,message) VALUES(?, ?, ?)');
if($query->execute(array(json_encode($_POST['namec']), json_encode($_POST['emailc']), json_encode($_POST['message'])))) {
echo json_encode(array('success' => true));
} else {
echo json_encode(array('success' => false));
}
My contact.js looks like this
$(document).ready(function () {
$('#ContactForm').submit(function (e) {
e.preventDefault();
var that = $(this);
$.ajax({
url: that.attr('action'),
type: that.attr('method'),
dataType: 'json',
data: that.serialize(),
success: function () {
if (res.success) {
console.log('ok');
} else {
console.log('not ok');
}
},
error: function (err) {
console.log(err);
}
})
})
})
On submit i see this on console.log
Can someone give a little brief about this?
Upvotes: 0
Views: 18
Reputation: 171669
You are missing the response data argument in success
callback
success: function (res){
//^^^ is missing
if (res.success) {
console.log('ok');
} else {
console.log('not ok');
}
}
Upvotes: 3