Мне нужно отправить объект, как PHP
$obj = [
array('id' => '111');
];
как параметр запроса POST.
Я пытался использовать
[{struct,[{<<"id">>,<<"111">>},{<<"id">>, <<"222">>}]}]
[{struct,[{"id","111"}]}]
[{struct,[{"id":"111"}]}]
[{struct,[{"id"=>"111"}]}]
[[{"id","111"}]]
[{"id":"111"}]
[{"id"=>"111"}]
но это неправильно.
Я пытался заменить «на "
но это тоже неправильно.
Я не нахожу в руководстве пользователя примеров работы с массивом или объектом. Кто-нибудь сталкивался с этим вопросом?
Создайте строку запроса, используя квадратные скобки, а затем закодируйте ее URL.
Пример строки запроса:
someArray[someindex_1][name]=blah&someArray[someindex_1][id]=123&someArray[someindex_2][name]=bah blah&someArray[someindex_2][id]=456
отправьте закодированную строку как тело почтового запроса. Это должно привести к массиву на сервере, как это:
print_r($_POST['someArray']);
// array(
// "someindex_1" => array(
// "name" => "blah"// "id" => 123
// )
// "someindex_2" => array(
// "name" => "blah blah"// "id" => 456
// )
//);
Вы можете отправить массив в запросе POST, используя имя элемента HTML в квадратных скобках «[]». Пример показан ниже:
<input type="text" name="countries[]" value="Nigeria">
<input type="text" name="countries[]" value="Ghana">
Затем в своем PHP-коде вы можете получить значения следующим образом:
$countries = $_POST['countries']; //$countries is now an array of POST-ed countries
var_dump($countries);
Но если то, что вы хотите отправить через объект, то вы должны его сериализовать. Вы можете использовать код ниже:
$obj = get_an_object_somehow();
$encoded_obj = base64_encode(serialize($obj));
Тогда в вашей HTML-форме:
<input type="text" name="myObj" value="$encoded_obj">
Наконец, в вашем скрипте обработки формы вы можете десериализовать его следующим образом:
$decoded_obj = unserialize(base64_decode($obj));//get back original object
var_dump($decoded_obj);