#php #jquery #ajax
#php #jquery ( jquery ) #ajax
Вопрос:
Предположим, у меня есть форма входа в систему, в которой есть два элемента формы, то есть имя пользователя и пароль. Но при проверке на стороне клиента я не установил обязательный параметр в имени пользователя. Моя цель — после проверки на стороне клиента я хочу изменить это со стороны сервера через ajax, где поле имени пользователя будет проверяться на стороне сервера, если имя пользователя пустое, тогда php проверяет и отвечает как json. Я хочу проанализировать данные и показать ошибку проверки, а также показать сообщение об ошибке аутентификации при входе в систему для другого элемента div в форме входа. Но не смог получить это. Пожалуйста, помогите мне с этой проблемой.
$(document).ready(function(){
// initialize validator and add the custom form submission logic
$("#LoginForm").validator().submit(function(e) {
var form = $(this);
// client-side validation passed
if (!e.isDefaultPrevented()) {
$.ajax({
type: "POST",
url: "process.login.php",
data: $('#LoginForm').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.status)==1)
{
window.location=msg.txt;
}
}
});
// prevent default form submission logic
e.preventDefault();
}
});
});
Комментарии:
1. У вас отсутствует } в success: function(msg){
2. спасибо, обновил этот код.
Ответ №1:
Я полагаю, вы хотите знать, как работает ответ проверки php (сервера)?
<?php
// your validation here ...
$msg = array("status"=>1, "text"=>"some text here");
echo json_encode($msg);
Ответ №2:
Это может помочь.. Мне пришлось подделать ваш ответ в переменной скрытой формы, но вы должны захватить сообщение и статус и обработать его. Также отлавливайте ошибки на стороне сервера.
Я также исправил вашу проверку так, как вы ее настроили, но вы можете прочитать документацию о лучших практиках для jQuery validator.
http://jsfiddle.net/Xedus129/y6fA3/
обработка ошибок / обработка успеха в вызове ajax :
success: function (msg) {
var status = parseInt(msg.status);
var message = msg.message;
return handleResponse(status,message);
},
error: function (xhr, ajaxOptions, thrownError) {
//this is a fatal error
alert(xhr.status);
alert(thrownError);
}
Надеюсь, это то, о чем вы спрашивали, трудно сказать по вашему вопросу.
Комментарии:
1. Я выполнил проверку на стороне клиента в поле пароля, т.е. jquery проверяет, является ли поле пароля пустым или нет. Если пусто, то отобразите сообщение об ошибке (сообщение об ошибке проверки по умолчанию) или используйте это ‘if ($(this). valid()) {‘ и отправьте сообщение на страницу php, где поле name будет проверено, если оно пустое, затем оно выдает сообщение в формате json и передается в средство проверки jquery, например {‘username’:’введите имя пользователя’}