простой JQuery AJAX не работает - PullRequest
0 голосов
/ 10 мая 2011

вот мой аякс:

$('#savecustomer').click(function() {   
    $.ajax({
        type: "POST",
        url: "ajax-newcustomer.php",
        data: ({ name : $('#ncname').val(), address : $('#ncaddress').val(), postcode : $('#ncpostcode').val(), dob : $('#ncdob').val(), mobile : $('#ncmobile').val(), email : $('#ncemail').val() }),
        dataType: "json",
        success: function(data){
            alert('sc success');
            if (data == 'error')
            {
                $('#ncsuccess').attr('display', 'none');    
                $('#ncerror').attr('display', 'block');
            }
            else
            {               
                $('#ncname').val('Name');
                $('#ncaddress').val('Address');
                $('#ncpostcode').val('Postcode');
                $('#ncdob').val('Date of Birth');
                $('#ncmobile').val('Mobile Number');
                $('#ncemail').val('Email Address'); 

                $('#ncerror').attr('display', 'none');  

                $('#ncsuccess').html(data);                 
                $('#ncsuccess').attr('display', 'block');                   
            }
        }
    });
});

это не показывает мне предупреждение вообще. это означает, что это не удастся .... я думаю, это как-то связано с данными: формат.

Ответы [ 4 ]

2 голосов
/ 10 мая 2011

Я предлагаю вам использовать обратный вызов error метода ajax, чтобы помочь вам увидеть, что происходит:

error: function(xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
}

Таким образом, вы можете увидеть, если это 404 (поэтому путь к странице указан неверно), 500 (некоторая ошибка на стороне сервера) и т. Д.

2 голосов
/ 10 мая 2011

данные должны быть объектными литералами в вашем случае без ()

 ...
 data: { 
        name : $('#ncname').val(),
        address : $('#ncaddress').val(),
        postcode : $('#ncpostcode').val(),
        dob : $('#ncdob').val(),
        mobile : $('#ncmobile').val(),
        email : $('#ncemail').val()
},
 ...

, кроме того - я собрал бы все значения перед вызовом ajax следующим образом:

var ncname = $('#ncname').val();

это позволит вам проверить вализацию более удобным способом в инструментах Firebug / Chrome Dev. Ох ... почти забыл - проверьте fiddler или другой инструмент, чтобы увидеть, был ли запрос даже отправлен на сервер, чтобы увидеть, отклонил ли он его

1 голос
/ 10 мая 2011

Снять скобки (и) вокруг данных.

0 голосов
/ 10 мая 2011

добавить обработчик ошибок и посмотреть, какая ошибка возвращается:

$.ajax({
        type: "POST",
        url: "ajax-newcustomer.php",
        data: (...),
        dataType: "json",
        success: function(data){
            ...
        },
        error: function(err){  ... check err here ...}
    });

Кроме того, нет скобок вокруг данных

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