Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с передачей массива методом POST 
V
    Опции темы
Icaros
  Дата 16.10.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 26.5.2006

Репутация: нет
Всего: нет



Суть такова: есть ХТМЛ документ.
Код

<form action="..." method="POST">
  <input type="text" name="a['a1']['b1']" value="1" />
  <input type="text" name="a['a1']['b2']" value="4" />
  <input type="submit" name="..." />
</form>


Скрипт принимает данные и обрабатывает их. Но вот в чем загвоздка. Положим, что:
Код

  $data = $_POST['a'];
  echo is_array($data)*1;
  print_r($data);
  echo empty($data['a1']['b2'])*1;


Самое интересное, что вывод такой:
Код

  1
  array(['a1'] => Array(['b1'] => 1 ['b2'] => 4))
  1


Почему в третьем случае - empty ? Я не могу обратиться к элементам массива $data. Может меня глючит, но я в шоке... Подскажите, как мне правильно через ХТМЛ-форму передать довольно большое кол-во данных (желательно структурированно, в виде массива) ?
PM MAIL   Вверх
Gold Dragon
Дата 16.10.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а может просто
Код

  <input type="text" name="a1[]" value="1" />
  <input type="text" name="a1[]" value="4" />
  <input type="text" name="a2[]" value="1" />
  <input type="text" name="a2[]" value="4" />



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Vaulter
Дата 16.10.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



Icaros, name у инпутов можно и просто
a[a1][b1]
почему пусто? гдето может. о.писка ! smile


--------------------
PM MAIL WWW ICQ   Вверх
smartov
Дата 16.10.2006, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Icaros, 
Цитата(Vaulter @  16.10.2006,  14:36 Найти цитируемый пост)
name у инпутов можно и просто
a[a1][b1]

Не можно а нужно.
Иначе у тебя имена и получаются с одиночными кавычками
сделай 
Код

var_dump($data);

и увидишь
Код

array(1) {
  ["'a1'"]=>
  array(2) {
    ["'b1'"]=>
    string(1) "1"
    ["'b2'"]=>
    string(1) "4"
  }
}

Получается и обращаться надо 
Код

... $data["'a1'"]["'b2'"] ...

А вот если кавычки в html уберешь (a[a1][b1]), будет все работать хорошо.

Это сообщение отредактировал(а) smartov - 16.10.2006, 16:57
PM MAIL   Вверх
Icaros
  Дата 17.10.2006, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 26.5.2006

Репутация: нет
Всего: нет



Уважаемый smartov, огромное спасибо. Вы совершенно правы. 
Раньше не приходилось через форму передавать массивы, поэтому как-то не обращал внимания на эту деталь. Тупил ужасно весь день, пытаясь понять, почему массив есть, а обратиться не могу... Ответ очевиден и лежит на поверхности.
Еще раз спасибо.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0779 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.