Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/30: Рейтинг темы: голосов - 30, средняя оценка - 4.60
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279

Как добавить запись в базу через чекбокс

13.09.2013, 18:28. Показов 6568. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Опять у меня возник вопрос, как добавить запись при помощи чекбокса. У меня есть чекбокс, как сделать чтобы при нажатии на чекбокс запись заносилась в таблицу одна если я снимаю галочку с чекбокса то запись становится другая. Сделать смог только так что запись добавляется одна и таже. Надеюсь на вашу помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.09.2013, 18:28
Ответы с готовыми решениями:

Как программно добавить запись в базу данных access через datagridview?
Проблема заключается в следующем: Когда заполняю таблицу с клавиатуры, то данные с datagridview сохраняются в бд, а когда таблица...

Через форму добавить запись в базу данных
На перле добавить данные в таблицу mysql! Данные берем из формы на странице! работаем с cgi файлом. база подключена, остался интерфейс....

Как добавить запись в базу данных
Учусь работать с базой данных. Никак не получается добавлять запись в таблицу при помощи SQL запроса INSERT INTO. Бьюсь уже неделю, не...

35
 Аватар для koza4ok
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632
13.09.2013, 20:13
Код показывайте

HTML5
1
<input type="checkbox" onclick="chs()">
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
    <script>
     function chs(){
         var str;
         //флажок установлен
         if(this.checked){
             //вашы действия
         }
         else{
             //флажок не установлен
         }
         
     }
0
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 20:26  [ТС]
PHP
1
<input type='checkbox' name='wmlogin' value='1'  />
а ниже к имени чекбокса
PHP
1
<td class="value"><? $wmlogin = mysql_query("UPDATE `tb_users` SET `WMLogin`='1' WHERE id='$_SESSION[iduser]'"); ?></td>
0
 Аватар для koza4ok
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632
13.09.2013, 20:40
PHP
1
<?  wmlogin = mysql_query
-удалите это пока никто не видет.

Вам нужен сдесь AJax-отправляете запросы на обновление данных в БД.
http://jquery.page2page.ru/ind... 0%BE%D1%81

Обращайтесь если дальше не понятно.
1
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 21:11  [ТС]
Сейчас попробую, спасибо.

Добавлено через 17 минут
сделал, но теперь у меня работает только с включенным чекбоксом, если я его выключаю запись в бд не меняется

PHP
1
<input type='checkbox' name='wmlogin' value='1'/>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<script>
     function wmlogin(){
         var str;
         //флажок установлен
         if(this.checked){
          <? $wmlogin = mysql_query("UPDATE `tb_users` SET `WMLogin`='1' WHERE id='$_SESSION[iduser]'"); ?>
         }
         else{
           
         }
         
     }</script>
после елсе пробовал ставить скрипт

PHP
1
<? $wmlogin = mysql_query("UPDATE `tb_users` SET `WMLogin`='0' WHERE id='$_SESSION[iduser]'"); ?>
но тогда всегда значение в бд обновляется на 0
0
Заблокирован
13.09.2013, 21:39
Зачем аякс я не понял. Значение чек-бокса не уходит с данными формы если он не был отчекрыжен. Это же элементарно выяснить, задаться вопросом куда девается, найти ответ и узнать все.

Чек-бокс бы зачекан: wmlogin = 1. Чекбокс не был зачекан: wmlogin = undefined. В терминах ява-скрипта. Следовательно если вам значение чек-бокса не нужно как таковое, то определить был он зачекан или нет, то есть сопоставить состоянию 1 или 0 можно по наличию элемента массива с именем чек-бокса.

PHP
1
$checked = isset($_POST['wmlogin']);
Или типа того. Отсюда и пляшите.
1
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 21:51  [ТС]
sqlnub, можете написать код, если не трудно. Буду очень благодарен
0
Заблокирован
13.09.2013, 22:30
Код чего? Вроде все уже написал. Ну да, isset() что вернет? Поди тру или лошь.

Поле id число? Я так и знал.

PHP
1
2
3
4
5
6
7
8
9
10
// тут пытаемся из предположительно текста получить число, целое
$id = (int) $_SESSION['iduser'];
// если там не было числа будет 0 и мы дохнем
if($id < 1) die('Почему-то id ни разу не число'); 
 
// я абсолютно не уверен что это даст 0 на фолс и 1 на тру, сами проверьте
$checked = (int) isset($_POST['wmlogin']);
// если не даст, то заменить на $checked = (isset($_POST['wmlogin'])) ? 1 : 0;
 
$q = 'UPDATE `tb_users` SET `WMLogin`=' . $checked . ' WHERE id= ' . $id . ';';
Далее вставляйте $q в запрос.
0
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 22:35  [ТС]
sqlnub, при чем тут этот запрос, мне нужно чтобы при нажатии на чекбокс в таблице в поле обновлялась на число 1, а если я снимаю галочку с чекбокса то запись возвращалась на 0 тут я вообще не вижу что мы подключили чекбокс.
0
Заблокирован
13.09.2013, 22:44
В двойных кавычках было бы

PHP
1
$q = "UPDATE `tb_users` SET `WMLogin`=$checked WHERE id=$id";
Повторяю чтобы прояснить. Однако пользование двойными не такая уж и халява за исключением случаев когда у вас чудовищный запрос в котором одна-две переменные повторяются стопицот раз.

Добавлено через 1 минуту
Цитата Сообщение от MrViper Посмотреть сообщение
чтобы при нажатии на чекбокс
Да, но при чем тут PHP? Идите на форум по ява-скриптам.

Добавлено через 6 минут
Понял, до вас не дошло что если чек-бокс не зачекан, вы его как элемент массива не увидите никогда. Надо или заводить скрытое поле с тем же именем и значением 0, или заводить скрытое поле с другим именем куда яваскрипт запишет 0 или 1 по событию onchange чек-бокса и отгрузит форму.
0
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 22:45  [ТС]
sqlnub, а скажите зачем мне идти на JS если все это можно сделать с помощью php ? Мне нужно всего 2 переменных, одна которая будет добавлять в базу цифру 1 а другая будет добавлять цифру 0. Это будет добавляться в таблице тому пользователю который нажал на чекбокс. Тут код по сути должен быть 4-5 строчек. И грузить систему он не будет.
0
Заблокирован
13.09.2013, 22:52
Цитата Сообщение от MrViper Посмотреть сообщение
var str; //флажок установлен if(this.checked){ <? $wmlogin = mysql_query
Только что рассмотрел. Теперь понятен смысл фразы "уберите пока этого никто не видит".

Ну что, клиника. Читайте документацию с самого начала.

Добавлено через 2 минуты
Во-первых не цифру, а число. Цифра это текст или изображение, а число это число.

Цитата Сообщение от MrViper Посмотреть сообщение
а скажите зачем мне идти на JS если все это можно сделать с помощью php
Во-вторых потому что у вас JS и PHP в одной куче что кагбе намекает что вы нитяти-нимамы в этом деле. Идите куда хотите. У вас есть полностью рабочий код процессинга, скопипастите его и все будет работать с вашими "цифрами".
0
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 22:53  [ТС]
sqlnub, при чем тут клиника? Если вы можете помочь, то помогите если вы не можете помочь то будьте добры пишите в других темах.
0
Заблокирован
13.09.2013, 23:03
Как обычно самые тяжелые случаи вызывают у хирурга желание вскрыть и посмотреть, все равно если сдохнет то ничего ж не будет.

У вас чекбокс где? Не валяется же просто так. Без аякса должен быть в форме.

HTML5
1
2
3
<form name="name" method="post" action="тут-скрипт-который-будет-обрабатывать-данные-формы.php>
<input type="checkbox" name="checkbox" value="1" onchange="this.form.submit()/>
</form>
Все правильно?

Так вот, когда чекбокс нажали - форма отгружается и вы можете попробовать найти в массиве $_POST элемент с именем 'checkbox'. Он там будет если чек-бокс был нажат и зачекрыжен. Его там не будет если чек-бокс был нажат и расчекрыжен.

Именно по этому самому факту вы делаете вывод о состоянии чек-бокса в момент отгрузки формы. С этого и начинается мой код который написан по вашей просьбе. Только имя чекбокса тут другое.

Добавлено через 38 секунд
Цитата Сообщение от MrViper Посмотреть сообщение
при чем тут клиника? Если вы можете помочь,
В первую очередь вы должны хотеть себе помочь сами.

Добавлено через 2 минуты
Да, если "тут-скрипт-который-будет-обрабатывать-данные-формы.php" это он самый скрип откуда растет чекбокс, то в action ничего не пишите action="";

И конечно страница перезагрузится. Если не хотите перезагрузки - идите на форум по ява-скриптам. Только сперва выкосите весь php из явы, а то еще раз вам поставят диагноз.
1
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 23:09  [ТС]
sqlnub, спасибо с этим я разобрался, но смотрите если человек нажал на чекбокс в бд обновилась запись с 0 на 1, а если человек снимит галочку с чекбокса у него же запись не обновиться на 0, а мне нужно чтобы запись обновилась.
0
Заблокирован
13.09.2013, 23:13
Цитата Сообщение от MrViper Посмотреть сообщение
но тогда всегда значение в бд обновляется на 0
Пришлось даже подумать, а вдруг это у меня клиника и я не знаю что JS и PHP запростяк могут взаимодействовать на клиентской стороне.

Все что у вас написано до <? никакой не скрипт для сервера, а просто текст который надо вывалить в буфер по окончании процесса. Интерпрентатору фиолетово что там написано до <? - даже если и на php написано, да хоть на фортране или ассемблере. Так понятно?

Еще будете спорить что это не клиника?

Добавлено через 2 минуты
Цитата Сообщение от MrViper Посмотреть сообщение
а если человек
Так вот другой человек, типа вас, должен не просто нарисовать чек-бокс, а нарисовать в нем галку если в БД 1, и не рисовать там галку если в БД 0. То есть чек-бокс должен отражать состояние связанного с ним поля в таблице.
0
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 23:18  [ТС]
sqlnub, такое чувство что мы вообще о разных вещах говорим, у меня есть скрипт и он работает что если чекбокс нажат то стоит галочка если чекбокс не нажат галочка не стоит. Суть не в этом мне совсем другое сделать надо. У меня есть таблица, я делаю защиту по ВМ, если человек хочет поставить защиту по ВМ он нажимает на чекбокс, таким образом отправляется запрос на обновление данных в таблицу с 0 на 1 (по умолчанию стоит 0 в бд в поле) если человек захотел снять защиту по ВМ то он снимает галочку с чекбокса и а бд обновляется заново с 1 на 0.
0
Заблокирован
13.09.2013, 23:27
$id = как получить правильный ид из сессии уже знаете.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
// нужен запрос который выдаст значение связанного с чек-боксом поля
$= 'SELECT`tb_users`.`WMLogin` WHERE id= ' . $id . ';';
 
$value = ... // запрашиваете, получаете результат
// в зависимости от него будет вставлен атрибут, или не вставлен атрибут
// это можно объединить с проверкой результата
$check .= ($value) ? ' checked' : ''; 
 
$form='<form name="name" method="post" action="тут-скрипт-который-будет-обрабатывать-данные-формы.php>
<input type="checkbox" ' . $check . ' name="checkbox" value="1" onchange="this.form.submit()/>
</form>';
 
echo $form;
Теперь ваш чек-бокс отражает значение поля. Юзер зачекал - отгрузилось, записалось 1, загрузилось, обнаружилось 1, написалось checked, галка есть. Юзер нажал - отгрузилось, записалось 0, загрузилось, 1 не обнаружилось, ничего не записалось, галки нет.

Ужос, какую элементарщину приходится объяснять.

Если вы признаетесь что делаете какой-то идиотский урок я выпью йаду.

Добавлено через 2 минуты
Цитата Сообщение от MrViper Посмотреть сообщение
если человек захотел снять защиту по ВМ то он снимает галочку с чекбокса и а бд обновляется заново с 1 на 0.
Вам все расжевано до атома, даже глотать не надо, можно вдыхать. Вы все равно ничерта не поняли. Ну в общем с чекбоксами регулярно такая шняга, будет полезно тем, кто документацию не читает.

Выше все написано как обновить с 1 на 0 и обратно.
0
56 / 31 / 1
Регистрация: 25.04.2013
Сообщений: 279
13.09.2013, 23:30  [ТС]
sqlnub, скажите честно вы больной что-ли? Какой урок, по моему я сказал что я делаю защиту по ВМ или вам это большим шрифтом написать? Будьте проще и люди к вам потянуться, а то ведете себя как идиот конченный.
0
Заблокирован
13.09.2013, 23:37
Может так дойдет:

Code
1
2
3
4
5
<input type="checkbox" ' . $check . ' name="checkbox" value="Да тут абсолютно по барабану какое будет значение, хоть всю Войну и мир процитируйте со всеми рецензиями, 
потому что значение имеет не значение чекбокса, а его, блин, имя как элемента массива $_POST. Есть такое имя в посту - был зачекан, нет такого имени в посту - не был зачекан. 
Значение чек-бокса имеет значение только когда оно что-то действительно передает кроме самого наличия зачеканного чек-бокса, например если у нас куча чек-боксов то зачеканный 
может вернуть название выбранного диагноза" onchange="this.form.submit()/>
</form>';
Добавлено через 3 минуты
Цитата Сообщение от MrViper Посмотреть сообщение
Будьте проще и люди к вам потянуться
Поэтому один грамотный чел и сказал: будьте проще и люди на вас оттянутся.

Я бы давно соскочил но с чек-боксами вопросы возникают регулярно. Надеюсь эта забавная тема станет регулярно находибельной и читабельной.

Насчет кто идиот. Кто смешал в кучу ява-скрипт и пхп?

Защиту он по ВМ делает. Аще... квантор.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.09.2013, 23:37
Помогаю со студенческими работами здесь

Как добавить запись в базу данных?
Как осуществить, чтобы при нажатии на кнопку, добавлялась запись в базу данных PHPMYADMIN( SQL) C#? Поля: ID, имя , код оборудования.

Как добавить в базу дату через DateTimePicker?
Добрый день. Я пишу диплом и тут у меня возникли проблемы, а именно Как добавлять данные в базу я знаю через db компоненты, но как...

Как добавить несколько записей в базу через одну кнопку?
Вручную сделал скрин что бы понять? Как можно сделать?

Как добавить через Insert Into ключевое поле в базу данных
Здравствуйте ! Хотел узнать: &quot;Сталкивался ли кто-то при вставке ключевого поля в базу данных ?&quot; Стоит ли его указывать явно в...

Как добавить чекбокс
Есть у меня такой код, всё работает: &lt;?php if(isset($_POST)) { # Текст из формы $text = strip_tags(trim($_POST)); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru