Изменение на стороне сервера после завершения на стороне клиента

#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’:’введите имя пользователя’}