Варианты выхода из скрипта 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"