Identifikacija Checkboxa

levi-de

Новичок
Identifikacija Checkboxa

Zdravstvujte!

Est' checkbox:

<input type="checkbox" name="ch[]" value="....">

Pri najatii na knopku peredaju massiv ch[]

Zadacha proverit', li v konkretnom checkboxe galochka, ili net i v zavisimosti ot resul'tata vidat' to, ili inoe soobschenie.
 

antonio

Moderator
Команда форума
Используй массив с предопределенными ключами
array_keys вернет тебе массив ключей и ты определишь - в каких чекбоксах была отметка
 

_RVK_

Новичок
[m]phpinfo[/m](INFO_VARIABLES)

-~{}~ 30.11.05 17:14:

>вернет тебе массив ключей и ты определишь - в каких чекбоксах была отметка

Зачем ему ключи?
 

levi-de

Новичок
Vot nado chto to tipa takogo:


foreach($ch as $var)
{
if(!empty($var))
{
print("On, ");
}
else
{
print("OFF, ");
}
}

Estestvenno ne rabotaet, tak kak esli $ch bila peredana , to ona v ljubom sluchae "ON".
A kak sdelat' tak, chto bi programma proverjala sam $ch?
 

asm

Пофигист
antonio тебе уже писал Используй массив с предопределенными ключами
 

kvf77

Red Devil
levi-de

if (isset($_POST['ch'])) {
}

или GET в зависимости от того какую ты форму пользуешь
 

zarus

Хитрожопый макак
Автор оригинала: levi-de
Vot nado chto to tipa takogo:


foreach($ch as $var)
{
if(!empty($var))
{
print("On, ");
}
else
{
print("OFF, ");
}
}

Estestvenno ne rabotaet, tak kak esli $ch bila peredana , to ona v ljubom sluchae "ON".
A kak sdelat' tak, chto bi programma proverjala sam $ch?
Естесвенно, она работает правильно, так как пустые значения чекбокса НЕ передаются. Если ты выведешь 10 чекбоксов и отметишь только 5, то после сабмита получишь массив из 5 элементов.
 

levi-de

Новичок
Vot i ja o tom je pischu. A mne nujno iz 10 boxov, iz kotorih otmechenno 5 poluchit' ne ON,ON,ON,ON,ON, a OFF,OFF,OFF,OFF,OFF,ON,ON,ON,ON,ON,
 

zarus

Хитрожопый макак
чтобы не быть голословным
Код:
<form method="post">
<?php
if (isset($_POST['check'])) {
  print_r($_POST['check']);
  echo '<br />';
}
for ($i=0;$i<10;$i++) {
  echo '<input type="checkbox" name="check[]" value="'.$i.'" /><br />';
}
?>
<input type="submit" value="GO" />
</form>
 

kvf77

Red Devil
_RVK_

я так понимаю, у него проблема - если ничего небыло отмечено - его код даст ошибку, потому что нечего будет foreach'ить - вот он и спрашивает как этого избежать. ведь если нет ни одного отмеченного чекбокса - не будет и переменной $ch

ну видать мое предположение было неправильным

levi-de
Умеешь ты пудрить мозги людям - учись вопросы задавать.
Это решается Javascript. Вообще, тебе нужно создать еще один массив внутри своего скрипта, где будут присутствовать все элементы. В форме необходимо писать не $ch[], а $ch[key], и foreach делать по "идеальному массиву", проверяя наличие ключа из "идеального массива" в переданном из формы
 

zarus

Хитрожопый макак
Автор оригинала: levi-de
Vot i ja o tom je pischu. A mne nujno iz 10 boxov, iz kotorih otmechenno 5 poluchit' ne ON,ON,ON,ON,ON, a OFF,OFF,OFF,OFF,OFF,ON,ON,ON,ON,ON,
А вот тут уже подумай, как тебе это сделать.
 

asm

Пофигист
levi-de
Никак или JS.
И еще раз перечитай все что написано выше.
 

Onizuka

Новичок
Можно делать, как написал kvf77, но есть способ ИМХО попроще:

<input type="hidden" name="ch[1]" value="OFF">
<input type="checkbox" name="ch[1]" value="ON">

<input type="hidden" name="ch[2]" value="OFF">
<input type="checkbox" name="ch[2]" value="ON">

В этом случае значение будет передаваться в любом случае.
 
Сверху