Checkbox и php

IL
На сайте с 07.11.2007
Offline
42
1276

Здравствуйте!

Обрыл весь нет но так и не нашел решения!

При добавление объявления на сайте человек должен отметить флажки(checkbox)

Пробовал сделать через массив и отправлял в базу перед этим сериализовав данные массива функцией serialize().

Вытянуть массив тоже получается функцией unserialize

Но на странице где пользователь должен редактировать информацию не могу разобраться как сделать так что бы выбранные ранние checkboxы были уже отмечены а ранние не отмеченные оставались и в прежде отмеченными и пользователь мог менять информацию.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

И в чём проблема?

<input type="checkbox" name="checkbox1" id="checkbox1" value="1" <? if ($mass['checkbox1']) {echo 'checked';}?> />

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
IL
На сайте с 07.11.2007
Offline
42
#2
LEOnidUKG:
И в чём проблема?

<input type="checkbox" name="checkbox1" id="checkbox1" value="1" <? if ($mass['checkbox1']) {echo 'checked';}?> />

Вот только массив приходит в виде Array ( [0] => Петя [1] => Вася )

и как тут сделать проверку я не догоняю!

vadoru
На сайте с 06.01.2009
Offline
38
#3
I love internet:
Вот только массив приходит в виде Array ( [0] => Петя [1] => Вася )
и как тут сделать проверку я не догоняю!

Вам все правильно подсказали, так как для checkbox массив как правило имеет вид

array( имя_checkbox_1 => значение, 

имя_checkbox_2 => значение, ....
)
Учебный центр design-class.com.ua (http://design-class.com.ua)
M_8
На сайте с 24.05.2010
Offline
46
M_8
#4

можно наверно так:

<input type="checkbox" id="checkbox1" name="checkbox_group[]" value="1" <? if ($mass['checkbox1']) {echo 'checked';}?> />

<input type="checkbox" id="checkbox2" name="checkbox_group[]" value="2" <? if ($mass['checkbox2']) {echo 'checked';}?> />

<input type="checkbox" id="checkbox3" name="checkbox_group[]" value="3" <? if ($mass['checkbox3']) {echo 'checked';}?> />

...

проверка

if(isset($_POST['checkbox_group']))

{

foreach($_POST['checkbox_group'] as $value)

{

if (empty($value))

echo 'чекбокс не отмечен'

else

echo 'чекбокс отмечен'

}

}

Обмен ссылками (http://www.turbo-link.ru/?r=31)
[Удален]
#5
I love internet:
Здравствуйте!
Обрыл весь нет но так и не нашел решения!
При добавление объявления на сайте человек должен отметить флажки(checkbox)
Пробовал сделать через массив и отправлял в базу перед этим сериализовав данные массива функцией serialize().
Вытянуть массив тоже получается функцией unserialize
Но на странице где пользователь должен редактировать информацию не могу разобраться как сделать так что бы выбранные ранние checkboxы были уже отмечены а ранние не отмеченные оставались и в прежде отмеченными и пользователь мог менять информацию.


print_r(МАССИВ);

Код выведет содержимое массива а там уж догадаешься как сделать

Dreammaker
На сайте с 20.04.2006
Offline
569
#6

M_8, нужно ещё дополнить небольшим нюансом - для каждого чекбокса перед ним выводить hidden поле со значением (или каким-то по дефолту)

<input type="hidden" name="checkbox_group[]" value="0"

или же чётко прописывать индексы массивов. Есть ещё варианты, но они выходят за рамки уровня программинга ТС :)

Если не сделать один из способов, то в $_POST придёт каша - ибо в этом случае незаполненные чекбоксы не попадут в массив и порядок индексов собъётся. Может за последнее время что-то в браузерах поменялось, но не думаю (не уверен, потому что сам использую заложенный в фреймворках функционал, все на автомате обрабатывается).

IL
На сайте с 07.11.2007
Offline
42
#7

Сделал все получилось всем спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий