Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: обработка нескольких динамически созданных чекбоксов
 
 автор: larush   (05.06.2007 в 11:13)   письмо автору
 
 

динамически создаю чекбоксы, в названия входит день месяца в формате {ddmm}. Пользователь выбирает произвольное кол-во и методом POST посылает на обработку. Как мне, не зная названий (они формируются динамически на неделю вперед) и кол-ва отмеченных, при получении данных их обработать ?

Спасибо всем.

   
 
 автор: larush   (05.06.2007 в 11:21)   письмо автору
 
   для: larush   (05.06.2007 в 11:13)
 

сам спросил, сам и ответил - накопал в форуме, делаю чебоксы элементами массива :-)

   
 
 автор: mihdan   (05.06.2007 в 11:23)   письмо автору
 
   для: larush   (05.06.2007 в 11:13)
 

Сделай из названий массив

<input type="checkbox" name="massiv[050507]">
<input type="checkbox" name="massiv[060507]">
<input type="checkbox" name="massiv[070507]">
<input type="checkbox" name="massiv[080507]">
<input type="checkbox" name="massiv[090507]">

А в файле на который шлем форму напиши


<?php
// отмеченные даты
foreach ($_POST['massiv'] as $date) {
   echo 
$date "<br />\n";
}
?>

   
 
 автор: aeternum   (12.06.2007 в 16:06)   письмо автору
 
   для: mihdan   (05.06.2007 в 11:23)
 

А как затем реализовать в обработчике: "INSERT INTO table VALUES (0,$date)".
Заранее спасибо!

   
 
 автор: kasmanaft   (12.06.2007 в 16:20)   письмо автору
 
   для: aeternum   (12.06.2007 в 16:06)
 

mysql_query("INSERT INTO table VALUES (0,$date)"); :))

- - -
Опишите подробнее чего Вам надо. Не понятно :(

   
 
 автор: aeternum   (12.06.2007 в 16:58)   письмо автору
 
   для: kasmanaft   (12.06.2007 в 16:20)
 

Приведенный ниже код записывает последнее значение в таблицу. Где надо исправить, чтобы
он записывал все значения.

<?php 
require_once("/admin/admin_conf.php");
// отмеченные даты 
foreach ($_POST['massiv'] as $date) { 
   
mysql_query("INSERT INTO table VALUES (0,$date)");  

?>

   
 
 автор: Trianon   (12.06.2007 в 17:55)   письмо автору
 
   для: aeternum   (12.06.2007 в 16:58)
 

этот код запишет значения всех чекбоксов, которые были отмечены.

   
 
 автор: kasmanaft   (12.06.2007 в 17:57)   письмо автору
 
   для: aeternum   (12.06.2007 в 16:58)
 

Хм... должен все записывать, а не только последний

   
 
 автор: aeternum   (12.06.2007 в 20:04)   письмо автору
 
   для: kasmanaft   (12.06.2007 в 17:57)
 

Увы, почему то уменя пока не получается...

   
 
 автор: bronenos   (12.06.2007 в 20:17)   письмо автору
 
   для: aeternum   (12.06.2007 в 20:04)
 

а разве не
foreach ($_POST['massiv'] as $date=>$d)
вот здесь date будет содержать ключ дату... или я не понял че нало?

лучше вообще name='date[]' value='030307' типа того

   
 
 автор: Trianon   (12.06.2007 в 22:17)   письмо автору
 
   для: aeternum   (12.06.2007 в 20:04)
 

показывайте код, рисующий форму, и код, её обрабатывающий.

   
 
 автор: aeternum   (13.06.2007 в 12:40)   письмо автору
 
   для: Trianon   (12.06.2007 в 22:17)
 

Это код формы:

<?php
echo "<html><head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">
<title>test</title>
</head>
<body>"
;
echo 
"<form method=\"POST\" action=\"111.php\">";
echo 
"1<input type=\"checkbox\" name=\"massiv[070507]\" value=\"070507\">
2<input type=\"checkbox\" name=\"massiv[080507]\"value=\"080507\">
<input type=\"submit\" value=\"Отправить\">
</form>"
;
echo 
"</body></html>";
?>


Это код обработчка:
<?php
require_once("admin/admin_conf.php");
  foreach (
$_POST['massiv'] as $dat)
  {
 
$query "INSERT INTO table VALUES (0, '".$dat."')";
  }
  if(
mysql_query($query))
 {
  print 
"<HTML><HEAD>\n";
  print 
"<META HTTP-EQUIV='Refresh' CONTENT='3; URL=test.php'>\n";
  print 
"<BODY>\n";
  echo 
"$query";
  print 
"<br><b>Успешно доставлено.</b>\n";
  print 
"</BODY>\n";
  print 
"</HEAD></HTML>\n";
  exit();
  }
 else
 {
  echo 
"<a href='test.php'>Назад</a>";
  echo 
"Ошибка в запросе";
  echo 
$query";
  exit();
 }
?>

   
 
 автор: Eugene77   (03.10.2007 в 19:50)   письмо автору
 
   для: aeternum   (13.06.2007 в 12:40)
 

Просто скобку не там поставил.
вот так надо:


>  foreach ($_POST['massiv'] as $dat)
>  {
> $query = "INSERT INTO table VALUES (0, '".$dat."')";

>  mysql_query($query)
>  }

   
 
 автор: ШИМ   (05.06.2007 в 11:27)   письмо автору
 
   для: larush   (05.06.2007 в 11:13)
 

можно примерно так


<input type=chekbox name=date[] value=11:34>
<input type=chekbox name=date[] value=12:35>
<input type=chekbox name=date[] value=15:32>


а потом в обработчике обращайся к єтому массиву
например

foreach($_POST['date'] as $value)
{
    echo "$val";
}

   
 
 автор: larush   (02.10.2007 в 13:56)   письмо автору
 
   для: ШИМ   (05.06.2007 в 11:27)
 

новый вопрос про чекбоксы:

имею чекбоксы по месяцам и select по результатам выбора из которого нужно разблокировать или заблокировать эти чекбоксы (доступ к элементам управления посредством выбора значений в другом элементе)

<script>
  function selectCh(parametr)
  if(parametr>0)
  вот тут-то бы хотелось разблокировать ВСЕ чекбоксы chb
</script>

<form name= form1>
<input type=checkbox name= chb[] value=1 disabled>1
...
<input type=checkbox name= chb[] value=12 disabled>12
<select onChange=selectCh(this.value)>
  <option value=0>Все.
  <option value=1>Не оплаченные
  ...
</select>
</form>


в сущности вопрос- как используя массив чекбокосов сделать так чтобы орни разблокировались при выборе соответствующего значения select'a

   
 
 автор: sim5   (02.10.2007 в 14:21)   письмо автору
 
   для: larush   (02.10.2007 в 13:56)
 

Пройдитесь по массиву элементов формы, если текущий элемени массива это type=checkbox, то устанавливайте ему disabled=false.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования