JQuery AJAX JSON не возвращает истину - PullRequest
1 голос
/ 30 июля 2011

у меня есть большая форма на моем веб-сайте, и я использую serialize () для ее обработки.

моя проблема:
результат всегда возврат false после заполнения формы!Я проверил, используя Firebug.если false, результат показывается.это было на самом деле data.ok == true был вызван, но это не показывает сообщение на странице?и он не перенаправил страницу на адрес назначения?

jquery ajax:

$("#details").live("submit", function(e){
   var form = $(this).serialize();
   var data_string = form;
   $.ajax({
            type: "post",
            url: "../_include/ajax.php?details",
            cache: false,
            data: data_string,
            dataType: "json",
            success: function(data) {
                if(data.ok) {
                    ("#pop").html(data.message).addClass("oke").fadeIn("slow");
                    setInterval(function() {
                        location.href = data.redirect
                    },2000)

                } else {
                    $("#pop").html(data.message).addClass("warning").fadeIn("slow");
                }

            }
        });

        e.preventDefault();
})

в PHP:

if (isset($_GET['details'])) {

    if (empty($name)) {
            $data['ok'] = false;
            $data['message'] = 'Please enter name!';
    } ................ {
            .............
    } else {
      $db->query("UPDATE query....");
      $data['ok'] = true;
      $data['message'] = 'Your details has been submitted!';
      $data['redirect'] = 'index.php?p=details';
    }


echo json_encode($data);
}

Ответы [ 2 ]

2 голосов
/ 30 июля 2011

У вас, похоже, есть синтаксическая ошибка в вашей функции успеха (если это не ошибка копирования / вставки):

("#pop").html(data.message).addClass("oke").fadeIn("slow");

должно быть:

$("#pop").html(data.message).addClass("oke").fadeIn("slow");
2 голосов
/ 30 июля 2011

вы проверяете GET в своем PHP (if (isset($_GET['details']))), но отправляете POST (указав type как post) в своем AJAX.

Либо проверяйте массив $_POST вместо$_GET или измените тип на get.

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