Варианты выхода из скрипта php для ответа в ajax

Admin JavaScript, PHP

Пример функции выхода из метода PHP для отправки ответа на ajax.

Допустим есть метод:

public function ajaxGetSomething() {}

В нём что-то делается и нам нужно выйти из него включив шаблон HMTL или просто передать значение. Например, так:

include __DIR__ . '/get.php';
die();

Казалось бы, на js нам достаточно будет проверить ответ на то, что ответ не пустой.

jQuery.ajax({
    method  : 'post',
    dataType: 'json',
    url     : ajax.ajaxurl,
    data    : {
        action      : 'some_action',
    },
    success : function (response) {
   
    if (response.length !== 0) {

    } else {

    }
});
Однако иногда такое приводит к ошибке.

die() или die(0), может вернуть не пустоту или 0, а строку с несколькими пустыми символами в первом случае и строку с несколькими пустыми символами и нулем в другом.

Можно конечно поставить в die(‘end’) или die(0) и проверить в js на соответствие через поиск:

response.indexOf('end')

Но это больше похоже костыль. Лучше поступить иначе и написать в методе php выход следующего рода:

$response['success'] = 'success';
$response['message'] = 'один из вариантов сообщения';

ob_start();
include __DIR__ . '/get.php';
$response['content'] = ob_get_clean();

echo json_encode($response);
die();

Тогда на стороне JS мы можем проверить есть ли в ответе статус success. И если он присутствует, то вывести одно, а в его отсутствии другое.

if (response.success) {

div1.innerHTML = response.content;
div2.innerHTML = response.message;

}

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Варианты выхода из скрипта php для ответа в ajax"