@cloneforse

Как получить данные с checkbox?

Имеется список товаров. В каждом товаре есть чекбокс. В конце страницы есть кнопка типа "submit", которая отправляет POST запрос PHP скрипту.
Не могу понять, как же обрабатывать эти чекбоксы.
Мне нужно делать запрос в БД, если чекбокс товара активирован.

Сам чек бокс выглядит так:
<input type="checkbox" name="add-[id]" value="on">
  • Вопрос задан
  • 1603 просмотра
Решения вопроса 1
@DanKud
Вам нужно передать массив чекбоксов "add", а не присваивать каждому чекбоксу отдельное имя. И из этого массива вы получите значения отмеченных чекбоксов.

Например:
<input type="checkbox" name="add[]" value="101"> <!-- id товара в value -->
<input type="checkbox" name="add[]" value="102">
<input type="checkbox" name="add[]" value="103">

print_r($_POST['add']); // в $_POST['add'] у вас массив всех отмеченных id

или как предложили в ответе выше - отправить массив с ключами и взять значения ключей:
<input type="checkbox" name="add[101]" value="on"> <!-- id товара в ключе массива -->
<input type="checkbox" name="add[102]" value="on">
<input type="checkbox" name="add[103]" value="on">

$ids = array_keys($_POST['add']); // в $ids у вас массив всех отмеченных id
print_r($ids);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
vladislav_boychenko
@vladislav_boychenko
Купаюсь в гривнах
Я создавал скрытый hidden input, в value которого передавал значение "Да/Нет". Это не для добавлений в БД было, но для отслеживания чекбокса подходило.
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
убрать бессмысленную черточку из имени поля и написать

$ids = array_keys($_POST['add']);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы