JQuery — AJAX Возвращение PHP и head.php (источник страницы)

У меня есть немного Ajax здесь:

$.ajax({
type: "POST",
url: "<?=site_url('front_office/get_email_list/')?>",
dataType: "text",
success: function(response) {
console.log(response)
}
});

По какой-то причине этот код возвращает желаемый PHP, но он также возвращает мой файл head.php.

function get_email_list() {
$center_ids = array(
/* list of user ids */
);
print_r(json_encode($this->user_model->get_email_list($center_ids)));
/* get_email_list($center_ids)) returns a database query result */
}

И, наконец, мой head.php содержит ваш обычный <head> теги с импортом javascript и css.

Вывод выглядит примерно так:

**** return from php *****<head>header stuff</head>

Я бы предпочел не анализировать информацию заголовка, а просто получить вывод PHP.

Заметка: Я использую codeiginiter и вызываю функцию внутри front_office контроллер.

Вторая нотаЯ знаю, что сейчас ничего не публикую, но скоро буду. Я старался GET но проблема сохраняется.

0

Решение

Вы возвращаете представление, проверяете запрос, если это не ajax, загружаете представление, иначе возвращаете закодированный в json результат в ваш запрос ajax.

if (!$this->input->is_ajax_request()) {
// load view
}else{
// Adding header, so jQuery ajax request will know that it is json
// and result will be parsed immediately
$this->output->set_content_type('application/json');
$this->output->set_output(json_encode($email_list_result));
}

Подробнее о возврате JSON по адресу:
Возвращение JSON из PHP-скрипта

Также проверьте, загружаете ли вы head.php в метод конструктора?
Пожалуйста, отправьте весь код с контроллера.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]