Данные не определены - PullRequest
0 голосов
/ 13 июня 2018

Консоль сообщает о следующих ошибках, когда я нажимаю кнопку отправки на моей странице:

process.js:19 Uncaught ReferenceError: data is not defined
at HTMLButtonElement.<anonymous> (process.js:19)
at HTMLButtonElement.dispatch (jquery-3.3.1.min.js:2)
at HTMLButtonElement.y.handle (jquery-3.3.1.min.js:2)

Это мой код JQuery AJAX, который выполняется при нажатии кнопки отправки.Я впервые играю с AJAX / jQuery - не уверен, что происходит, поэтому, если кто-то может мне помочь, это будет очень признательно!

$(document).ready(function() {
$('#login_button').click(function()
{
    event.preventDefault();
    var formData = {
        'email'         : $('input[email=email').val(),
        'password'      : $('input[password=password').val()
    };

    $.ajax({
        type        : 'POST',
        url         : 'ajax/proclogin.php',
        data        : formData,
        dataType    : 'json'
    });

    // using the done promise callback

        if (data.success == false)
        {
            if(data.errors.email)
            {
                //toastr.error(''+data.errors.email+'', 'Oops!');
                alert('Email error');
            }
            else if(data.errors.password)
            {
                //toastr.error(''+data.errors.password+'', 'Oops!');
                alert('Password Error');
            }
        }
        else
        {
            //toastr.success('Works!', 'WooHoo!');
            alert('Works.');
        }
});
});

Ответы [ 5 ]

0 голосов
/ 13 июня 2018

относительно вашей проблемы сейчас с подтверждением адреса электронной почты и пароля

'email'         : $('input[email=email]').val(),
'password'      : $('input[password=password]').val()

this -> input [email = email] нацеливается на элемент ввода с атрибутом «email», который не является допустимым атрибутом ввода, вашищем имя / тип и т. д.

'email'         : $('input[name=email]').val(),
'password'      : $('input[name=password]').val()

, поэтому вы нацеливаетесь на все элементы ввода , которые имеют атрибут name электронной почты или пароля.затем убедитесь, что в элементе ввода есть имя = электронная почта

<input type="email" name="email">
<input type="text" name="password">

надеюсь, это решение поможет вам

0 голосов
/ 13 июня 2018

data используемый вами объект не определен.В соответствии с предложением Рори МакКроссана, используйте ajax нижеупомянутым способом.Для получения подробной информации перейдите по этой ссылке - http://api.jquery.com/jquery.ajax/

Пример :

 $(document).ready(function() {
    $('#login_button').click(function()
    {
        event.preventDefault();
        var formData = {
            'email'         : $('input[email=email]').val(),
            'password'      : $('input[password=password]').val()
        };

        $.ajax({
            type        : 'POST',
            url         : 'ajax/proclogin.php',
            data        : formData,
            dataType    : 'json',
            success     : function(data){
                         if (data.success == false)
                           {
                              if(data.errors.email)
                              {
                               //toastr.error(''+data.errors.email+'', 'Oops!');
                                alert('Email error');
                              }
                    else if(data.errors.password)
                    {
                        //toastr.error(''+data.errors.password+'', 'Oops!');
                        alert('Password Error');
                    }
                }
                else
                {
                    //toastr.success('Works!', 'WooHoo!');
                    alert('Works.');
                }
               });
        }
     });                   
 });
0 голосов
/ 13 июня 2018

Модель ajax-функции выглядит следующим образом

$.ajax({
    url : 'wopiEditor',
    data : {
        data : data,
        reqType : "initEditFile",
        access_token : "DEADBEEFDEADBEEFDEADBEEF"
    },
    type : 'POST',
    dataType : 'text',
    success : function(response) {

    },
    error : function(request, textStatus, errorThrown) {
        console.log(request, textStatus, errorThrown);
    }
});

В вашем коде данные определены где угодно.Так что это дает ошибку.

0 голосов
/ 13 июня 2018
Add success handler like this...

 $.ajax({
        type        : 'POST',
        url         : 'ajax/proclogin.php',
        data        : formData,
        dataType    : 'json',
        success: function (response) {
           console.log(response);
        }
    });
0 голосов
/ 13 июня 2018

Ответ или , данные доступны при успешном обратном вызове вызова $.ajax.

 $.ajax({
        type        : 'POST',
        url         : 'ajax/proclogin.php',
        data        : formData,
        dataType    : 'json'
    }).done(resp => {
       // You IF statements go here.
    }).fail(error => {

    });

Посмотрите документы на: jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...