Как передать массив объектов из JavaScript в PHP - PullRequest
2 голосов
/ 30 июня 2011

Если у меня есть, в javascript, что-то вроде:

entriesObj1 = new Object();
entriesObj1.entryId = "abc";
entriesObj1.mediaType = 2;
entriesObj2 = new Object();
entriesObj2.entryId = "def";
entriesObj2.mediaType = 1;

var entries = new Array();

entries[0] = entriesObj1;
entries[1] = entriesObj2;

Какой лучший способ передать его php через HTTP POST?

Я пробовал плагин jQuery для преобразования массива в JSON. Я попытался создать несколько скрытых полей с именем «entry []», каждое из которых имеет строку JSON. Почему-то я не могу декодировать свои данные с помощью PHP json_decode.

EDIT: Я попытался изменить используемый плагин JSON на указанный @Michal, и результаты, которые я получаю, такие же:

Javascript

[
    {"disciplina":"sdfsdfsdfsd","titulo":"sdfsdfsdf","componentes":"Bloco Completo"},
    {"disciplina":"sdfsdfsdfsd","titulo":"sdfsdfsdf","componentes":"Bloco Completo"}    
]

PHP Vardump:

string(756) "
[
    {\"disciplina\":\"sdfsdfsdfsd\",\"titulo\":\"sdfsdfsdf\",\"componentes\":\"Bloco Completo\"},
    {\"disciplina\":\"sdfsdfsdfsd\",\"titulo\":\"sdfsdfsdf\",\"componentes\":\"Bloco Completo\"}
]
"

Когда я использую PHP json_decode, я получаю NULL.

var_dump(json_decode($_REQUEST['entries']));

Выход:

NULL

Ответы [ 3 ]

1 голос
/ 30 июня 2011

Сконфигурируйте его, используя несколько символов, таких как _ или %%, затем передайте его в PHP.

В файле PHP:

$ar = array();
$ar = explode('special_char',string pass from js);
echo "pre";print_r($ar);
echo "/pre";
1 голос
/ 30 июня 2011

Вам необходимо преобразовать JSON в строку (используйте строковый JSON (https://github.com/douglascrockford/JSON-js) и POST строку (в качестве значения поля)) в сценарий PHP, который выполняет json_decode ()

0 голосов
/ 05 июля 2011

ну, похоже, проблема в кавычках, которые передавались в посте, поэтому я просто заменил кавычки открытыми строками на мой $ _REQUEST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...