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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: проверка нескольких checkbox

Сообщения:  [1-10]   [11-19] 

 
 автор: sim5   (29.07.2009 в 05:59)   письмо автору
 
   для: serjinio   (29.07.2009 в 00:38)
 

И почему это вам array_map не подходит? А если подумать? :) Текстовые поля, и поля загружаемых файлов должны иметь в имени своем индекс равный ID записи, а чекбоксы этот индекс содержат в качестве значения. Тогда:
<?
//получаем массив полей которые выбраны
$checked array_map('intval'$_POST['check']);
//далее по этому массиву проверяем все
//получаем только выбранные описания
$desc array_intersect_key($_POST['desc'], array_flip($checked));
//а в цикле проверки загруки изображений выбираем только те, что отмечены
//имеются в массиве $checked

  Ответить  
 
 автор: serjinio   (29.07.2009 в 00:38)   письмо автору
 
   для: sim5   (28.07.2009 в 15:49)
 

Прошу прощение за паузу..к сожалению мне array_map не подходит кроме вышеуказанных полей присутствуют поля type="file"
смысл заключается в том что на страницу динамически те(произвольное количество )выводятся поля
выбор картинки ее описание и чекбокс ..опубликовывать или нет
далее они поступают в обработчик который загружается во фрейме ..он принимает массив $_FILES и массив$_POST текстовых полей и чекбоксов...обрабатывает это в цикле
for ($i=0; $i<count($_FILES['fl']['name']); $i++) {

if (is_uploaded_file($_FILES['fl']['tmp_name'][$i]) == TRUE) 
 {
проверки..ресайз....
$Description=$_POST['descr'][$i]...
$img_name=$_POST['n'][$i]== ...
проверка чекбоксов......
$hide_info=$_POST['reg'][$i].............
запись в БД.....
$Message.='<div ><img  src="'.$filename_thumb_path.'" width="160" height="120" border="0" /></div><p>Описание : <span class="info">'.$Description.'</span></p>
<p class="in">Статус просмртра : '.$hide_info.' </p>' и тд....
 } 
<script type="text/javascript">
parent.document.getElementById("imageId").innerHTML ='<?php echo $Message ?>'; 
</script>


делает ресайз картинок и выводит в этом фрейме блоки типа AJAX во фрейме...в которых превьюшка и данные к ней типа описание и включен или выключен чекбокс ..одновременно производится запись в Бд (в цикле) имя картинки ее параметры,описание ,название и значение чекбокса(для нее)..те опубликовывать или нет...
те все запустил но проблема привязки значений чекбоксов к картинкам....

  Ответить  
 
 автор: x64   (28.07.2009 в 23:13)   письмо автору
 
   для: Рома   (28.07.2009 в 17:35)
 

стебун?

смотря для чего это нужно.
для данного вопроса (как Я его понял), проще посмотреть наличие $_POST['reg'][1]
а не изгаляться через
foreach ($_POST['reg'] as $v) {
switch ($v) {
case 10: <код>; break;
case 20: <код>; break;

}
}

если понял не так, то проще просуммировать все значения $_POST['reg'] (аналог SET в mysql; для этого value-значение представляются как степень двойки. удобно)

ps: одним людям мозг нужен для того, чтобы думать; другим — чтобы не ‘бухало’, когда стучишь по голове…

  Ответить  
 
 автор: Trianon   (28.07.2009 в 17:45)   письмо автору
 
   для: Рома   (28.07.2009 в 17:20)
 

дело вкуса.
По мне так array_map выглядит симпатичней.

  Ответить  
 
 автор: Рома   (28.07.2009 в 17:35)   письмо автору
 
   для: x64   (28.07.2009 в 17:23)
 

>флажок не отмечен, браузер значение не передаёт.

А восемь умножить на восемь равно шестьдесят четыре.

  Ответить  
 
 автор: x64   (28.07.2009 в 17:23)   письмо автору
 
   для: Рома   (28.07.2009 в 17:20)
 

если тут:
><input name="reg[1]" type="checkbox" value="10" />
><input name="reg[2]" type="checkbox" value="12" />
флажок не отмечен, браузер значение не передаёт.

  Ответить  
 
 автор: Рома   (28.07.2009 в 17:20)   письмо автору
 
   для: Trianon   (28.07.2009 в 15:17)
 

Можно у Вас просто поинтересоваться, а то мне уже неудобно ответы постить? А разве не логичнее здесь применить foreach?

  Ответить  
 
 автор: sim5   (28.07.2009 в 15:49)   письмо автору
 
   для: serjinio   (28.07.2009 в 14:59)
 

Ошибка говорит о том, что второй аргумент функции не является массивом, хотя $_POST, это массив. Значит вы запендюрили эту функцию, не проверив, пришел ли вам массив $_POST. Проверьте:
<?
print_r
(array_map('intval', array(123'a'5)));

Если ваши чекбоскы служат для проверки выбора/не выбора определенных ID, то значениям этих чебоксов укажите не единички, а ID. Тогда вышеприведенный код позволит получить только реальные ID возвращенные пользователем. Можно ID указать и как ключи массива $_POST. В этом случае можно проверить вышеприведенным способом ключи, либо значения, но предварительно array_flip($_POST['reg']). Если указывать ключам ID, то значения для чекбоксов можно не указывать, невыбранные чекбоксы не передаются на сервер, а установленные передают значение "on".
В общем как делать проверку, зависит от того, чему служат ваши чекбоксы, а чему они служат я не знаю.

  Ответить  
 
 автор: ride   (28.07.2009 в 15:40)   письмо автору
 
   для: Trianon   (28.07.2009 в 15:36)
 

смешной примерчик. убедили :)

  Ответить  
 
 автор: Trianon   (28.07.2009 в 15:36)   письмо автору
 
   для: ride   (28.07.2009 в 15:31)
 

>впринципе,
>
<input type="checkbox" name="reg[22]" value="22">
- тоже вариант и ни к каким плохим последствиям не приведет.

Конечно. Равно как возможен и следующий вариант:
<input type="checkbox" name="reg[22]" value="Повторяю для тех, кто в танке, 22 (двадцать второй нумер)  отмечен!  22 is on!!! ">


Вопрос лишь, зачем?

  Ответить  

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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