Невозможно обработать json-массив из Ajax в php


2

Это связано с тем, что при доступе к странице в браузере запрос отправляется через GETHTTP-глагол.

Ваш PHP-код настроен только на обнаружение данных, отправленных через POSTглагол - как видно из вашего использования $_POST['out']- поэтому выполнение скрипта следует за альтернативным логическим путем, где вы только эховыводите out not postedвывод.


0

Чтобы протестировать его непосредственно с php-страницы, вам нужно передать данные, потому что вы передаете массив объектов, было бы довольно грязно делать это с помощью URL-адреса. Попробуйте это в php-файле.

HTTP: //localhost/test.php TESTMODE

<!doctype html>
<html>
<head><title>In php from ajax</title></head>
<body>
<?php
if (isset($_POST['out'])) {
    $objs = json_decode($_POST['out']);
    echo 'K0=' . $objs[0]->key . ', data0=' . $objs[0]->keysdata;
} elseif(isset($_GET['testmode'])) {
      $str = '[{"key":0,"keysdata":1},{"key":1,"keysdata":2}]';
      $objs = json_decode($str);
      echo 'K0=' . $objs[0]->key . ', data0=' . $objs[0]->keysdata;
} else {
    echo 'out not posted';
}
?>
</body></html>

Чтобы создать массив объектов в PHP, выполните следующие действия:

$myArray = array((object)array("key" => 0,"keysdata" => 1),(object)array("key" => 1, "keysdata" => 2));

0 принят

Друзья, это со ссылкой на мои вопросы, размещенные здесь 14 и 16 мая 2017 года. Вопросы следующие: 1. Массив объектов JSON успешно отправлен на php с использованием jquery ajax, но размер массива отчетов php = 0

  1. A ±

Я работаю над этим вопросом с 12 мая 2017 года и через неделю благодарен после тщательного изучения моих кодов и т. Д. У меня возникла проблема и решение. Я, хотя я должен поделиться этой историей с людьми, так что любой человек в такой ситуации, как моя, может помочь себе.

Когда я запускаю свою страницу, содержащую jquery, все работает нормально. Но если я получаю доступ к целевому php вручную, я постоянно получаю неизвестный индекс «out» в моем целевом файле php ......... on line .....

Я задавался вопросом, почему PHP не получает значение «out», несмотря на отладку chrome и все предупреждения в файле JQuery, прекрасно работающие, чтобы показать, что передача данных с PHP и с него в порядке.

После многих обзоров я наконец обнаружил, что PHP требует «out» для публикации из формы через элемент с именем «out».

Затем я пересмотрел свой код на странице JQuery, чтобы сохранить Json-массив «jarrary» после того, как он стягивается в скрытый текстовый элемент с именем «out» (с использованием jquery-кодирования). Затем я сделал сообщение формы через метод Jquery submit (). И все получилось! Теперь, если я вручную получаю доступ к странице PHP, я получаю, что и сторона PHP, и сторона JQuery работают нормально.

PHP, JQuery, JSON, AJAX,

php,jquery,json,ajax,

0

Ответов: 3


2

Это связано с тем, что при доступе к странице в браузере запрос отправляется через GETHTTP-глагол.

Ваш PHP-код настроен только на обнаружение данных, отправленных через POSTглагол - как видно из вашего использования $_POST['out']- поэтому выполнение скрипта следует за альтернативным логическим путем, где вы только эховыводите out not postedвывод.


0

Чтобы протестировать его непосредственно с php-страницы, вам нужно передать данные, потому что вы передаете массив объектов, было бы довольно грязно делать это с помощью URL-адреса. Попробуйте это в php-файле.

HTTP: //localhost/test.php TESTMODE

<!doctype html>
<html>
<head><title>In php from ajax</title></head>
<body>
<?php
if (isset($_POST['out'])) {
    $objs = json_decode($_POST['out']);
    echo 'K0=' . $objs[0]->key . ', data0=' . $objs[0]->keysdata;
} elseif(isset($_GET['testmode'])) {
      $str = '[{"key":0,"keysdata":1},{"key":1,"keysdata":2}]';
      $objs = json_decode($str);
      echo 'K0=' . $objs[0]->key . ', data0=' . $objs[0]->keysdata;
} else {
    echo 'out not posted';
}
?>
</body></html>

Чтобы создать массив объектов в PHP, выполните следующие действия:

$myArray = array((object)array("key" => 0,"keysdata" => 1),(object)array("key" => 1, "keysdata" => 2));

0 принят

Друзья, это со ссылкой на мои вопросы, размещенные здесь 14 и 16 мая 2017 года. Вопросы следующие: 1. Массив объектов JSON успешно отправлен на php с использованием jquery ajax, но размер массива отчетов php = 0

  1. A ±

Я работаю над этим вопросом с 12 мая 2017 года и через неделю благодарен после тщательного изучения моих кодов и т. Д. У меня возникла проблема и решение. Я, хотя я должен поделиться этой историей с людьми, так что любой человек в такой ситуации, как моя, может помочь себе.

Когда я запускаю свою страницу, содержащую jquery, все работает нормально. Но если я получаю доступ к целевому php вручную, я постоянно получаю неизвестный индекс «out» в моем целевом файле php ......... on line .....

Я задавался вопросом, почему PHP не получает значение «out», несмотря на отладку chrome и все предупреждения в файле JQuery, прекрасно работающие, чтобы показать, что передача данных с PHP и с него в порядке.

После многих обзоров я наконец обнаружил, что PHP требует «out» для публикации из формы через элемент с именем «out».

Затем я пересмотрел свой код на странице JQuery, чтобы сохранить Json-массив «jarrary» после того, как он стягивается в скрытый текстовый элемент с именем «out» (с использованием jquery-кодирования). Затем я сделал сообщение формы через метод Jquery submit (). И все получилось! Теперь, если я вручную получаю доступ к странице PHP, я получаю, что и сторона PHP, и сторона JQuery работают нормально.

PHP, JQuery, JSON, AJAX,
Похожие вопросы