Получить вывод php на стороне сервера через select2 x-editable

Я использую select2 v3.5.4 и X-editable v1.5.0

у меня есть editable с помощью select2 отправка данных через POST в скрипт PHP, работающий на сервере, и я пытаюсь распечатать вывод сервера в консоль js. Я пытаюсь это с помощью success() функция, но все, что я получаю в консоли Chrome после выбора значений и нажатия кнопки подтверждения, это просто undefined,

Javascript:

$(".sel").editable( {
  source  : [{id: '1', text: 'One'},
             {id: '2', text: 'Two'},
             {id: '3', text: 'Three'}],
  select2 : {multiple: true},
  url     : "animalsDetailsEdit.php",
  dataType: 'JSON',
  success : function(response, newValue) {
              console.log(response);
            },
  error   : function(){
              console.log("Error");
            }
});

Серверный PHP:

<?php
  echo json_encode("TEST MESSAGE");
?>

Я пробовал несколько комбинаций параметров, но безрезультатно.

1 ответ

Я обычно устанавливаю заголовок своего вывода PHP, чтобы javascript мог легко прочитать вывод, а также отключить создание отчетов об ошибках, чтобы API стал идеальным для его чтения Javascript.

<?php
error_reporting(0);
...
...
...
header('Content-Type:application/json;');
echo json_encode("TEST MESSAGE");

Вы также можете установить набор символов, например, "UTF-8" и т. Д. В заголовке. Этот вывод легко читается с помощью javascript... Еще одна вещь, которую я заметил, это то, что тестовое сообщение - это строка, а не массив, я предлагаю вам сделать это следующим образом...

<?php
error_reporting(0);
$output = array();
$output['status'] = true;
$output['message'] = 'Test Message';
header('Content-Type:application/json;');
echo json_encode($output);

в Javascript вы можете использовать выходной массив для проверки статуса, а также сообщения. или Вы можете сделать другую переменную для ошибки, где вы также можете поместить сообщение об ошибке...

<?php
$output['status'] = false;
$output['error'] = 'error message';
$output['data'] = array();
Другие вопросы по тегам