Как заставить функцию AJAX войти в функцию успеха?

Я использую регистрационную форму начальной загрузки, чтобы получать информацию о пользователях и сохранять ее в своей базе данных. ajax запросить информацию формы и сохранить ее после проверки.

Информация проверена правильно и затем правильно хранится в моей базе данных.

проблема в том, что после хранения информации запрос не возвращает ответ.

Это проверочный код начальной загрузки и запрос ajax:

$(document).ready(function(){
//To validate the registration form and save its value after validation
$('#registerForm').bootstrapValidator({
message: 'This value is not valid',
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
email: {
validators: {
notEmpty: {
message: 'The email is required and cannot be empty'
},
emailAddress: {
message: 'The input is not a valid email address'
}
}
}
}
})
.on('success.form.bv', function(e) {
// Prevent form submission
e.preventDefault();

// Get the form instance
var $form = $(e.target);

// Get the BootstrapValidator instance
var bv = $form.data('bootstrapValidator');

// Use Ajax to submit form data
$.ajax({
type: "POST",
url: $form.attr('action'),
data:$(form).serialize(),
dataType: "json",
success: function(data)
{
alert(data);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
alert(textStatus);
alert(errorThrown);
alert(XMLHttpRequest.responseText);
}
});
});
});

Функция AJAX не входит ни в один из success или же error функционирует, как я уже сказал, работает нормально и хранит все правильно, но вместо возврата к функции ajax выводит ответ в браузере.

Это также страница php:

<?PHP
$server_root = "../";
include_once("{$server_root}include-sql/mysql.class.php");
include_once("{$server_root}config.php");
Global $db1;
$db1 = new db_mysql($conf['db_hostname'], $conf['db_username'], $conf['db_password'], $conf['db_name']);
$db1->query("SET NAMES utf8");
date_default_timezone_set('Asia/Istanbul');

$email = mysql_real_escape_string($_POST['email']);

$sql = $GLOBALS['db1']->query("INSERT INTO users (email) VALUES ('$email')");

if($sql)
{
$msg = 'Success';
}
echo json_encode($msg);
?>

msg после отправки я не могу предупредить об этом, потому что он не возвращается в функцию успеха AJAX ??? Что-то не так или я что-то пропустил в этом коде?

0

Решение

Ожидается ответ JSON. Вы не возвращаете один. $ msg является строкой и не может быть закодирован в json.

Я бы сделал это:

$success = false;
if($sql)
{
$success = true;
}
echo json_encode(array("success" => $success));

тогда в вашей функции успеха:

alert(data.success);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]