Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Многомерный массив из формы
Форумы портала PHP.SU » » Вопросы новичков » Многомерный массив из формы

Страниц (1): [1]
 

1. registerers - 28 Ноября, 2012 - 14:38:00 - перейти к сообщению
Скажите. вообще это возможно - передать из формы многомерный массив?
Вобщем задача такая - скрипту требуется массив в таком виде:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [param] => Array
  4.         (
  5.             [0] => Array
  6.                 (
  7.                     [a] => value
  8.                     [b] => value
  9.  
  10.                 )
  11.             [1] => Array
  12.                 (
  13.                     [a] => value
  14.                     [b] => value
  15.                 )
  16.  
  17.         )
  18.  
  19. )
  20.  


Так вот, ума не приложу - как мне верстать форму??
Перепробовал разные комбинации, например:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <input type="text" name="param[][a]" value="">
  3. <input type="text" name="param[][b]" value="">
  4.  
  5. <input type="text" name="param[][a]" value="">
  6. <input type="text" name="param[][b]" value="">
  7.  

Выдает такой массив:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [param] => Array
  4.         (
  5.             [0] => Array
  6.                 (
  7.                     [a] =>
  8.                 )
  9.  
  10.             [1] => Array
  11.                 (
  12.                     [b] =>
  13.                 )
  14.  
  15.             [2] => Array
  16.                 (
  17.                     [a] =>
  18.                 )
  19.  
  20.             [3] => Array
  21.                 (
  22.                     [b] =>
  23.                 )
  24.  
  25.         )
  26.  
  27. )
  28.  


Но это совсем не то, что надо. Скажите, это вообще реально сделать то, что я хочу?
2. sKaa - 28 Ноября, 2012 - 14:47:39 - перейти к сообщению
serialize($array) ? и в hidden всё )
3. registerers - 28 Ноября, 2012 - 14:51:27 - перейти к сообщению
sKaa пишет:
serialize($array) ? и в hidden всё )


Возможно вы не так поняли вопрос. Мне нужно получить такой массив из уже готовой верстки, где два поля идут одно за другим и таких наборов может быть несколько. А когда массив получен, ясное дело, что его можно передать и путем сериализации. Итак вопрос - как получить такой массив?
4. Wol_fi - 28 Ноября, 2012 - 22:20:28 - перейти к сообщению
registerers пишет:
Возможно вы не так поняли вопрос. Мне нужно получить такой массив из уже готовой верстки, где два поля идут одно за другим и таких наборов может быть несколько. А когда массив получен, ясное дело, что его можно передать и путем сериализации. Итак вопрос - как получить такой массив?

Такой массив можно получить только путём указания ключей, так как пустые скобки будут добавлять новый элемент при каждом вхождении. Вообщем вам надо как-то сделать
CODE (html):
скопировать код в буфер обмена
  1. <input type="text" name="param[0][a]" value="">
  2. <input type="text" name="param[0][b]" value="">
  3.  
  4. <input type="text" name="param[1][a]" value="">
  5. <input type="text" name="param[1][b]" value="">


А расставлять необходимые цифры можно уже и на php при генерации формы.
5. registerers - 28 Ноября, 2012 - 23:07:14 - перейти к сообщению
Wol_fi пишет:
А расставлять необходимые цифры можно уже и на php при генерации формы.


в том то и дело, что эти инпуты могут создаваться и удаляться динамически с помощью JS и для того, чтобы обеспечить контроль за индексами прийдется невообразимо существенно усложнять код... ну и ладно, и на том, как говорится Спасибо! я хоть понял, что без костыля здесь не обойдешься, надеялся, что еще может быть какой то элегантный способ решения данной задачи... эххъ Огорчение
6. esterio - 28 Ноября, 2012 - 23:44:59 - перейти к сообщению
<input type="text" name="param[]" value="">

 

Powered by ExBB FM 1.0 RC1