[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача значений "динамической" формы.
bobo
Добрый день, расскажите пжлста, как решаются подбные задачи:
Имеем форму, в которую, в таблицу, подгружаются данные из БД.
Если конкретно:
     <?php
$queryonerazd = mysql_query("SELECT `id`,`podrazdel`,`devnamesm`,`defkol`,`stoim` FROM `smdevice` WHERE `razdel` = '1' AND `notuse` = '0' AND `smuse` = '1' ORDER BY `podrazdel` ASC") or die(mysql_error());
if (mysql_num_rows($queryonerazd) > 0) {
while ($arronerazd = mysql_fetch_assoc($queryonerazd)) {
?>

             
<tr>
<td>
 1.<?php echo $arronerazd['podrazdel']; ?><input type='text' [b]name='<?php echo $arronerazd['id']; ?>[/b]' value='<?php echo $arronerazd['id']; ?>' style='display:none' /></td>
<td>
 <?php echo $arronerazd['devnamesm']; ?></td>
<td><input
type='text' name='defcol<?php echo $arronerazd['id']; ?>' value='<?php echo $arronerazd['defkol']; ?>' /></td>
<td><input
type='text' name='cena<?php echo $arronerazd['id']; ?>' value='<?php echo $arronerazd['stoim']; ?>' /></td>
<td><input
type='text' name='summye<?php echo $arronerazd['id']; ?>' value='' /></td>
<td><input
type='text' name='summrur<?php echo $arronerazd['id']; ?>' value='' /></td>
<td><input
type='checkbox' name='arn<?php echo $arronerazd['id']; ?>' value='1' /></td>
</tr>


      			
<?php
}
}

mysql_free_result($queryonerazd);
?>

В результате получается чтото типа этого:
                        
<tr>
<td>
 1.1<input type='text' name='3' value='3' style='display:none' /></td>
<td>
 Блок РЕКС 2В</td>
<td><input
type='text' name='defcol3' value='' /></td>
<td><input
type='text' name='cena3' value='300.00' /></td>
<td><input
type='text' name='summye3' value='' /></td>
<td><input
type='text' name='summrur3' value='' /></td>
<td><input
type='checkbox' name='arn3' value='1' /></td>
</tr>


Причем таких <tr></tr> в таблице может быть сколь угодно, следовательно имена полей каждый раз будут разные (к имени поля подставляется индекс записи из БД, жирным шрифтом выделено).
Как при отправке формы выдергивать значения ?



Спустя 44 минуты, 14 секунд (26.10.2010 - 09:31) T1grOK написал(а):
Незачем задавать каждый раз новые переменные. Можно выгружать все в массив. То есть:

<tr>
<td>
1.1<input type='text' name='key[3]' value='3' style='display:none' /></td>
<td>
Блок РЕКС 2В</td>
<td><input
type='text' name='defcol[3]' value='' /></td>
<td><input
type='text' name='cena[3]' value='300.00' /></td>
<td><input
type='text' name='summye[3]' value='' /></td>
<td><input
type='text' name='summrur[3]' value='' /></td>
<td><input
type='checkbox' name='arn[3]' value='1' /></td>
</tr>



Спустя 11 минут, 53 секунды (26.10.2010 - 09:43) bobo написал(а):
Не совсем понял, что вы имеете в виду, можно чуть подробнее ?

Спустя 12 минут, 21 секунда (26.10.2010 - 09:55) T1grOK написал(а):
Ваш скрипт формирования полей ввода будет выглядеть так:

<tr>
<td>
1.<?php echo $arronerazd['podrazdel']; ?><input type='text' [b]name='key[<?php echo $arronerazd['id']; ?>][/b]' value='<?php echo $arronerazd['id']; ?>' style='display:none' /></td>
<td> <?php
echo $arronerazd['devnamesm']; ?></td>
<td><input
type='text' name='defcol[<?php echo $arronerazd['id']; ?>' value='<?php echo $arronerazd['defkol']; ?>' /></td>
<td><input
type='text' name='cena[<?php echo $arronerazd['id']; ?>' value='<?php echo $arronerazd['stoim']; ?>' /></td>
<td><input
type='text' name='summye[<?php echo $arronerazd['id']; ?>]' value='' /></td>
<td><input
type='text' name='summrur[<?php echo $arronerazd['id']; ?>]' value='' /></td>
<td><input
type='checkbox' name='arn[<?php echo $arronerazd['id']; ?>]' value='1' /></td>
</tr>


И теперь чтобы "выдернуть" значения:

foreach($_POST['key'] as $value){
echo $_POST['defcol'][$value];
echo $_POST['cena'][$value];
echo $_POST['summye'][$value];
echo $_POST['summrur'][$value];
echo $_POST['arn'][$value];
}

И логично проверять существование такого ключа со значением (isset()) в цикле.

Спустя 3 минуты, 34 секунды (26.10.2010 - 09:59) bobo написал(а):
Теперь понял, спасибо smile.gif

Спустя 1 месяц, 3 дня, 22 часа, 56 минут, 46 секунд (30.11.2010 - 09:55) bobo написал(а):
Дабы не создавать новую тему, апну эту.

foreach($_POST['key'] as $value) {
echo $_POST['defcol'][$value];
echo $_POST['cena'][$value];
echo $_POST['summye'][$value];
echo $_POST['summrur'][$value];
echo $_POST['arn'][$value];
}

Все ок, все работает, спасибо еще раз за помощь)
Внешне сейчас все это выглядит так user posted image
Задача стоИт такая: при выводе разносить значения по своим разделам. Экспорт делаю в excel.
Для этого добавил в массив переменную со значением раздела:

foreach($_POST['key'] as $value) {
echo $_POST['defcol'][$value];
echo $_POST['cena'][$value];
echo $_POST['summye'][$value];
echo $_POST['summrur'][$value];
echo $_POST['arn'][$value];
echo $_POST['razd'][$value];
}

Никак не могу сообразить, как запустить цикл, что б сначала подставлялось название раздела из $_POST['razd'][$value], далее вывод значений, где переменная имеет такое же значение, по окончании вывод названия следущего раздела и т.д.
Как реализовать ?

Спустя 1 час, 33 минуты, 36 секунд (30.11.2010 - 11:29) bobo написал(а):
Отбой.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.