Показать сообщение отдельно
  #4 (permalink)  
Старый 27.12.2018, 20:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от SolomonRei
Чтобы получить значение ответа.Потому что return не работает
return, это выход из функции, а json, это строка, а не массив, print_r для ее вывода совсем не нужна. Более того, если и требуется таким образом передать клиенту структуру массива, то нужно перехватывать вывод и только потом отдавать клиенту - echo print_r($array, true).

А json нужно отдавать как echo (для предотвращения неконтролируемого вывода до и после передачи json, лучше так exit(json)), то есть:

if($_POST['j'] == $_SESSION['g']) {
    $array = [4, 8, 10, 12];
    $array = json_encode($array);
    echo $array;
}


else echo '0'; - это глупость, так как не является JSON, которое предписано принять клиенту. В этом случае result на клиенте будет пуста, так работает jQuery. То есть это

if(result == 0) alert('unexpected error');
else {
var res = Array.from(result);
if($.inArray(0, res)) alert(5);
}

лишено всякого смысла - если json валидный, то result и будет массивом [4, 8, 10, 12].

Последний раз редактировалось laimas, 27.12.2018 в 20:48.
Ответить с цитированием