Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Передача неизвестного кол-ва select'ов


Автор: DiMoN_TD 27.12.2007, 14:43
такой вот вопрос...
есть ОДНА форма, в которой неопределённое кол-во select'ов (т.е. выпадающие списки). И всего лишь одна кнопка "Редактировать". Вот как мне получить данные из этой формы (незабудьте, кол-во списков неограниченно) и каждый элемент записать в БД в соответствующую таблицу и поле?
Советовали пользоваться массивом $_REQUEST, но собственно я пробовал на обычной форме, где несколько select'ов, и не получил желаемого результата.. =(

Буду признателен за помощь!

Автор: skyboy 27.12.2007, 14:58
если указать 
Код

<form action="..." method="POST">
<input name="row[1]" />

то в РНР можно будет получить так:
Код

$_POST['row']['1]

соотвественное, при генерации select'ов можно указывать для каждого из них имя, которые будут отличаться только индексов в квадратных скобках:
Код

for($i= 0; $i< 5; $i++)
echo '<input name="row['.$i.']" />';

а потом обрабатывать соотвествующий массив $_POST['row'] однообразно при помощи цикла.

Автор: PrivateRayan 27.12.2007, 15:08
DiMoN_TD, а в чем проблема? 
массив $_POST (А не $_REQUEST, как тебе неправильно советовали), легко перебирается через foreach. Как любой другой массив с неизвестным количеством элементов.

чтобы помочь тебе, надо видеть, как именно ты пробовал, и что именно не получилось.

То, как советует skyboy, со вложенными массивами - тоже можно, но, по-моему, сложнее для понимания, и не нужно. 
Вполне можно обойтись обычными именами.

Автор: DiMoN_TD 27.12.2007, 15:38
Хм, спасибо всем большое, но уже разобрался... действительно здесь можно обойтись и обычным $_POST
Как я это реализовал, показываю на лёгком примере:

Код

<FORM ACTION="" METHOD="post"> 
<SELECT NAME="as1"> 
 <OPTION VALUE="1">1</OPTION> 
 <OPTION VALUE="2">2</OPTION> 
 <OPTION VALUE="3">3</OPTION> 
</SELECT> 
<SELECT NAME="as2"> 
 <OPTION VALUE="1">1</OPTION> 
 <OPTION VALUE="2">2</OPTION> 
 <OPTION VALUE="3">3</OPTION> 
</SELECT> 
<INPUT TYPE="submit" VALUE="GO"> 
</FORM> 



Код

<? 
if (isset($_POST)) { 
  foreach($_POST as $key => $val) { 
   echo 'Имя SELECT = '.$key.', а его значение = '.$val.'<BR>'; 
 } 
} 
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)