Как в PHP получить значение checkbox
Мультичекбокс в PHP. Массив чекбоксов
Чекбокс — элемент формы, который позволяет отмечать галочкой интересующий пункт пользователя. Разберем способы взаимодействия чекбоксов с формой (выгрузка с отмеченными галочками) + массив чекбоксов в PHP при отправке формы.
Немного теории чекбоксов
- Обычный чекбокс задается так: Подписка
- Чтобы чекбокс был нажатым, достаточно поставить атрибут checked=»checked» .
- Чтобы понять, что чекбокс передается при POST отправке формы достаточно сделать так: if (isset($_POST[‘news’])) < echo $_POST['news']; >В этом случае, если галочка отмечена, выведется значение Да.
Теперь представим, что у нас много чекбоксов, для универсальности работы, добавим в них одно имя в виде массива news_add[]:
Теперь имя чекбоксов в массиве и если мы передадим их значения с формы, то нужно как-то узнать, значение какого чекбокса было нажато, для этого используем for цикл:
Таким образом, за счет этого обработчика мы легко можем определить через цикл нажатые галочки. В том же цикле можно сразу произвести нужные действия с выбранными чекбоксами.
Также вы заметили функцию ac_checbox() , она поможет определить при каждой POST отправке нажатый чекбокс (опять же через цикл) и выделить его галочкой:
В функцию передаются 2 параметра: POST массива чекбоксов и значение (value), которое надо проверить на «выбранность» пользователем.
Что возвращает input типов checkbox и radio
Элемент типа checkbox имеет несколько вариантов обработки браузером:
1. браузер отправит значение on (не укажем атрибут value ):
2. браузер отправит значение hello
value=» hello «>
value=» hello » checked>
3. браузер не отправит значение поля:
value=» «>
value=»0 «>
Элемент input типа radio делает тоже самое если он присутствует в единственном экземпляре с определенным именем , например name=» formradio «, а если этот элемент будет в нескольких экземплярах, например:
formradio » value = aaa >
formradio » value = bbb >
то в данном случае радиобутон может возвращать разные значения, в зависимости от того какой элемент будет выбран.
Как в PHP получить значение checkbox
к примеру строка
означает:
checked — значит галочка уже предустановлена (то есть пользователь видит на форме установленной)
если галочку снять то НЕ будет передано &edit_available=1
а если голочка стоит то БУДЕТ передано &edit_available=1
то есть в PHP обработчике формы смотришь
if( $_GET( edit_available ) ) == «1») «галочка стоит» else «галочка НЕ стоит»
5. Alexzzy , 21.11.2007 18:23 |
dozen Что именно не получается похоже мы тут не узнаем. aannddrreeww |
6. aannddrreeww , 21.11.2007 18:36 |
Alexzzy Я у себя в подписи не писл что я мега гуру php, да мя тока начинаю изучать просто непонятна обработка чекбоксов, в книжках об этом не написано в инете вся информация расплывчата. А хамить и унижать может каждый сидя перед монитором, вот интересно в глаза тебе слабо сделать ?? Добавление от 21.11.2007 18:41: Данные из чекбоска не заносятся в базу данных. |
7. Alexzzy , 21.11.2007 18:48 |
aannddrreeww Это шутка была. Если мне не хамят, то и я никогда. Да даже когда мне хамаят — стараюсь не поддаваться на провокации. Так что извиняюсь. Вы бы хоть написали, что нет никакой дополнительной информации о проблеме. Это кстати относится к первой части поста. Или вторая часть тоже как хамство и унижение рассматривается? |
8. aannddrreeww , 21.11.2007 19:02 |
Alexzzy лан проехали)) я здесь не отношение выясняю, а проблемы решаю)) |
9. Alexzzy , 21.11.2007 19:21 |
aannddrreeww Ну проехали так проехали. Пойду дальше. Увиденные мною «непонятки» я тут озвучил. |
10. megajohn , 21.11.2007 20:46 |
if (isset( $_POST[‘checkboxes’][$name] ) )
вот так должно быть Добавление от 21.11.2007 20:48: а строчку echo » $name»; замените на Добавление от 21.11.2007 20:56: почему то всем именам чекбоксов присваиваете $row[‘name’] ( про которые кстати мы не знаем ) |
11. aannddrreeww , 21.11.2007 21:44 |
12. megajohn , 22.11.2007 01:15 |
в вашем хреново разбираться — много лишнего
сначала запускать checkbox_init а потом уже и checkbox Сделал впопыхах, но работает. Как получить значение непроверенного флажка в CheckBox элементах, когда форма размещена?У меня есть форма, как показано ниже: Когда я проверять все флажки и отправить форму, результат выглядит так: Тогда я снимите второй флажок и отправить форму, результат выглядит так: Можно ли сделать результат, как это ниже, когда я снимите второй флажок: Есть идеи, чтобы сделать это? Спасибо за вашу помощь. Первый способ — скрытые поля (недостаток: пользователь может управлять значением поля (но можно манипулировать значение флажка тоже, так что это не проблема, если вы только ожидать, 1 или 0)) Второй способ — назначить значение по умолчанию для не заданных показателей: Я думаю, что добавление скрытых полей, как это будет работать Попробуй это. Если флажок не установлен, то скрытое поле с тем же именем будет передано вместо этого. Я считаю, что это невозможно, чтобы получить массив как то, что вы хотите от HTML форм. Но это некоторые приемы могут быть использованы: вопрос может быть уже ответил, но я просто хотел, чтобы принять удар на него . на стороне сервера только решение: Спасибо всем. Благодаря @RoyalBg дать мне решение. Как это : Это работает отлично .. 🙂 Предположим, что мы используем флажки с нулями или единицами . Используя скрытый переключатель с нулевым значением только обходным. Другая работа вокруг была бы добавить 0 к значению при получении поста или получить. $ Chkbx1 = $ _POST [ ‘chckbx1’]; $ Chkbx1 + = 0; Это имеет значение NULL превращает его в ноль, но если значение равно единице, так как в его проверили, то значение остается неизменным. Реальная проблема здесь не изобретает работу вокруг. Его понимание, почему это происходит. Более старые версии MySQL принимает нулевые значения и преобразует их в ноль. В более новых версиях, вы должны отключить строгий режим, а затем обходным не требуется. Передача значений checkboxТема в разделе «PHP для новичков», создана пользователем LAlexS, 21 июл 2014 .
Для того, чтобы обновить данные в бд, если чекбоксы были одновременно и отмечены и сняты отметки с изначально отмеченных, соответственно где был 1 изменить на 0 и наоборот Добавлено спустя 8 минут 31 секунду: порядок полей имеет значение
2. Вытекающее из первого: серверную валидацию никто не отменял. 3. Где ты в моём примере isset() увидал?
Как в PHP получить значение checkboxПример 1. Форма из одного флажка Давайте создадим простою форму с одним флажком (checkbox). В PHP скрипте (файл checkbox-form.php) возможно прочитать значение поля посредством массива $_POST. Если $_POST[‘formWheelchair’] присвоено значение YES, то флажок в был выбран. Если флажок не выбран, то переменная $_POST[‘formWheelchair’] не установлена. Вот пример обработки формы на PHP: echo «Требуется доступ.»; echo «Доступ не нужен.»; Переменной $_POST[‘formWheelchair’] присвоено значение » YES» , так как значение атрибута value тега input равно » YES» . Пожалуйста отметьте, что все флажки имеют одно имя ( formDoor[] ). Одно имя говорит о том, что все флажки связаны между собой. Квадратные скобки указывают на то, что все значения будут доступны из одного массива. То есть $_POST[‘formDoor’] не вернет строку, как в примере выше, вместо нее возвратится массив, содержащий значения флажков, которые были выбраны пользователем. Например, если я отмечу все флажки, $_POST[‘formDoor’] вернет массив из <"A","B","C","D","E">. В примере ниже мы получаем и отображаем все значения массива. echo(«Вы ничего не выбрали.»); echo(«Вы выбрали $N здание(й): «); Функция empty пригодится на тот случай, если пользователь ничего не выбрал. Если же массив не пустой, подсчитываем количество выбранных флажков при помощи функции count и выводим все значения при помощи цикла for . Если выбран флажок ‘Acorn Building’ , то массив будет содержать значение ‘A’ . Проверяем, выбран ли конкретный флажок Часто требуется проверить: выбран ли конкретный флажок. Для этого можно использовать следующую функцию: foreach($_POST[$chkname] as $chkval) Теперь достаточно просто вызвать функцию IsChecked (chkboxname,значение) . Например: Форум PHP программистов ► Клиентская сторона ► jQuery |
Пейджер выключен!
Сообщений: 827
Пользователь №: 37078
На форуме:
Карма: 13
Сообщений: 9472
Пользователь №: 26630
На форуме:
Карма: 644
Сообщений: 827
Пользователь №: 37078
На форуме:
Карма: 13
Подписаться на тему
Уведомление на e-mail об ответах в тему, во время Вашего отсутствия на форуме.
Подписка на этот форум
Уведомление на e-mail о новых темах на форуме, во время Вашего отсутствия на форуме.
Скачать/Распечатать тему
Скачивание темы в различных форматах или просмотр версии для печати этой темы.
Как в PHP получить значение checkbox
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12
Получить значение Checkbox для PHP редактирования данных
Как я могу получить значение флажка для использования на другой странице PHP как edit.php ? >? Мои результаты могут отличаться от значения CheckBox я выбираю.
Я не уверен, я понимаю ваш вопрос ясно, но от того, что я понял, я надеюсь, что этот пример помогает
Здесь у вас есть $_GET параметр , который вызывается name и его значение является foton .
Вы sebd значения вашего флажка в $_POST параметре называется foton .
Вам не нужно задать строку запроса в ваших $.ajax URL при указании данных (вместо того , чтобы вы хотите перенаправить на страницу , которая будет обрабатывать ваши $_GET параметры части).
checked() WP 1.0.1
Используется в checkbox и radio полях формы. Сделана для удобства, проверяет два значения и если они совпадают выводит атрибут checked=’checked’ для текущего поля формы.
Это одна из 4 функций помощников для форм: checked(), disabled(), selected(), readonly().
Обратите внимание, что перед выводимым атрибутом ставится пробел: » checked=’checked'» .
Возвращает
Выводит на экран атрибут checked=’checked’ , если переданные значения равны между собой или пустую строку. Если третий параметр ($echo) установлен в false, то функция вернет строку.
Использование
Примеры
#1 Демонстрация использования
Смотрите что выводит функция в зависимости от ввода разных параметров.