jQuery: если функция php завершилась, сделайте что-нибудь

-3

У меня есть форма, которая запускает функцию PHP через следующий jQuery:

jQuery('#subnewtideform').submit(ajaxSubmit_subnewtideform);

function ajaxSubmit_subnewtideform(){

    var subnewtideform = jQuery(this).serialize();

    jQuery.ajax({
        type:"POST",
        url: SiteParameters.site_url+"/wp-admin/admin-ajax.php",
        data: subnewtideform,
        context: this,
        success:function(data){
            // it successful, do stuff
        }
    });

    return false;
}

Он работает нормально. Проблема в том, что я хочу сделать что-то еще, если функция php exit; или return; ,

Например:

success:function(data){
    // it successful, do stuff
} else {
    // the function returned, so do something else
}

Вышеприведенный оператор else будет срабатывать, когда вызов ajax завершится неудачно... если функция php не имеет exit/return.

Как я могу заставить код jQuery понять, что моя функция php имеет exit?

  • 2
    почему бы вам не отправить код ошибки типа 404?
  • 0
    Вы должны поместить его в ответ и отфильтровать ответ, используя jQuery.
Показать ещё 6 комментариев
Теги:

2 ответа

1
Лучший ответ

Функция jQuery ajax имеет функцию обратного вызова error для этого точного сценария:

jQuery.ajax({
    type:"POST",
    url: SiteParameters.site_url+"/wp-admin/admin-ajax.php",
    data: subnewtideform,
    context: this,
    success:function(data){
        // it successful, do stuff
    },
    error: function(xhr, status, err){
       // Ajax failed/error
    }
});

См. Также документы для ajax, чтобы узнать, что было устарело, а также посмотреть, какие другие функции доступны (сделано, не работает, всегда).

0

Успешная часть функции jquery ajax связана с состоянием запроса. как говорится в документации

Функция, вызываемая при успешном выполнении запроса.

Что вы можете сделать на своем php, так это вернуть значение, которое вы можете проверить на свою функцию успеха. Например, вы можете вернуть объект json с чем-то вроде {"exit":true}.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню