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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача массива checkbox, передать n-количество значений checkbox 
V
    Опции темы
tailer_derden
Дата 4.9.2011, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!
Уважаемые, устал ломать голову, подскажите - передаю массив c несколькими checkbox.
Если выбираю, например, 3 из 5, то возвращается:
Код

check[0] = 1;
check[1] = 3;
check[2] = 5;

а надо
Код

check[0] = 1;
check[1] = 0;
check[2] = 3;
check[3] = 0;
check[4] = 5;


Для наглядности мой пример:
Код

<input type="hidden" name="idimg[]" value="'.$row['id'].'">
<input type="text" name="pos[]" value="'.$row['pos'].'">
<input type="checkbox" name="check[]" value="">

и обработчик формы
Код


$arr_pos = $_POST['pos'];
$arr_idimg = $_POST['idimg'];
$arr_check = $_POST['check'];
    
for ($i = 0; $i < count($arr_pos); $i++)
{
echo $arr_pos[$i]." ";
echo "<b>".$arr_idimg[$i]."</b>&nbsp;&nbsp;";      
      if(isset($arr_check[$i]))
      {
        echo 'yes'; 
      }
      else {
        echo 'no'; 
      }      
      echo "<br> ";          
    }


Заранее благодарен  smile 

Это сообщение отредактировал(а) tailer_derden - 4.9.2011, 13:55
PM MAIL ICQ   Вверх
enoff
Дата 4.9.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А какая разница, какие ключи, вы же данными оперируете.

Код

<input name="check[0]" type="checkbox" value="1" />
<input name="check[1]" type="checkbox" value="2" />
<input name="check[2]" type="checkbox" value="3" />
<input name="check[3]" type="checkbox" value="4" />

PM MAIL ICQ Skype GTalk   Вверх
tailer_derden
Дата 4.9.2011, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



1. Заранее сколько checkbox'ов на странице - неизвестно.
2. Мне нужно передать значения ВСЕХ checkbox'ов, даже если они не выбраны.

На моем примере видно, что, например, если передам 5 значений переменной $arr_pos (p1, p2, p3, p4, p5), и выберу второй и четвертый checkbox, то выведет:

p1 yes
p2 yes
p3 no
p4 no
p5 no

а надо

p1 no
p2 yes
p3 no
p4 yes
p5 no
PM MAIL ICQ   Вверх
enoff
Дата 4.9.2011, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Браузер передает только значения отмеченных чекбоксов.
либо пронумеровать чекбоксы, либо сделать значениями уникальными, либо с помощью яваскрипта перед отправкой формы добавить недостающие чекбоксы.
либо вместо чекбоксов использовать radiobutton
PM MAIL ICQ Skype GTalk   Вверх
capitan
Дата 4.9.2011, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как вариант, после каждого чекбокса прописывать
Код

<input type="checkbox" name="check[0]" value="1">
<input type="hidden" name="check_all[0]" value="text">  
<input type="checkbox" name="check[1]" value="1">
<input type="hidden" name="check_all[1]" value="text"> 
........
<input type="checkbox" name="check[10]" value="1">
<input type="hidden" name="check_all[10]" value="text"> 

Далее перебирать массив check_all и смотреть по ключу есть ли с таким ключом в массиве check.  Если есть - чекбокс выбран, если нет - не выбран. Это так, на вскидку.
PM MAIL WWW ICQ   Вверх
tailer_derden
Дата 4.9.2011, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Из моего первого поста видно, что я и так передаю не один массив...

Каким образом мне сравнить ключи, если передаются только отмеченные  checkbox ?
PM MAIL ICQ   Вверх
enoff
Дата 4.9.2011, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



tailer_derden, постом выше вариант решения. каждый чекбокс нумеруете и дублируете скрытым полем.
PM MAIL ICQ Skype GTalk   Вверх
tailer_derden
Дата 4.9.2011, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



enoff, я не могу нумеровать чекбоксы, т.к. заранее не знаю сколько их будет...  smile 
PM MAIL ICQ   Вверх
tailer_derden
Дата 4.9.2011, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, тема закрыта.

Решил проблему - задал каждому чекбоксу ключ равный id записи (тоже массив), а потом просто сравнил: если ключ передаваемого чекбокса равен id то эту запись выводим, иначе 0.
PM MAIL ICQ   Вверх
enoff
Дата 4.9.2011, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Издеваетесь, вы три раза сказали, что нельзя проставить ключи.
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0769 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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