2014-12-20 3 views
2

Я пытался передать & _POST с ключом, указывающим на массив в ассоциативном массиве, и я попытался помещать массив в атрибут «name» в поле «name», input ". Это не сработало, оно было передано серверу как строка. Это дает мне два вопроса:передать массив на сервер из атрибута «значение» входного тега

  1. Что позволяет PHP читать атрибут «name» «input» в качестве массива-символа, а не просто как строку?
  2. Как пройти через массив, который я бы хотел пройти? Код ниже.

HTML:

<input type="hidden" id="options[field_name_swap][gallery_id]" name="options[field_name_swap][gallery_id]" value="['galleries', 'name']"/> 

ниже код именно то, что я хочу (только без массива в виде строки):

Array 
(
    [tables] => Array 
     (
      [stock_details] => Array 
       (
        [print_id] => 4 
        [gallery_id] => 3 
       ) 

     ) 

    [options] => Array 
     (
      [field_name_swap] => Array 
       (
        [gallery_id] => ['galleries', 'name'] //these lines (1) 
        [print_id] => ['prints', 'photo_id'] // (2) 
       ) 

     ) 

) 

ответ

2

Как пройти через массив, который я бы хотел пройти? Код ниже.

Для этого вашего спасения делает массив на объекте и кодирования/декодирования как JSON строки:

$json = json_encode($array_given); 
echo "<input type='hidden' name='array' value='{$json}' />"; 

Сейчас в принимающем скрипте вы просто декодировать данную информацию:

$array = json_decode($_POST['array']); 

см. working demo

3

В PHP каждое значение в массиве должны были бы быть в своем собственном поле

<input type="hidden" id="options[field_name_swap][gallery_id][0]" name="options[field_name_swap][gallery_id][0]" value="galleries"/> 
<input type="hidden" id="options[field_name_swap][gallery_id][1]" name="options[field_name_swap][gallery_id][1]" value="name"/> 
Смежные вопросы