Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
1

Добавить в базу тот checkbox, который выделен в выведенных данных

01.09.2016, 10:10. Показов 5133. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте, помогите разобраться как можно реализовать запрос к бд, что бы изменить в таблице значение checkbox выделен 1 нет 0
вывожу все чекбоксы в html потом по ajax передаю выделеный checkbox обработчику:
PHP
1
$_REQUEST['check'] ? $rescheck=0 : $rescheck=1;
но дальше сделать как не пойму, как мне изменить в бд 0 на 1 и обратно именно тот checkbox на котором щелкнули и что бы он оставался потом выделенный при выводе

Добавлено через 16 часов 18 минут
Как сам запрос составить не понимаю, что бы добавить именно в ту строку в базе где был нажат checkbox не понимаю логику саму, оператор WHERE должен стоять это ясно, но где его применять не понимаю подскажите хотя бы в какую степь копать
PHP
1
mysql_query("UPDATE `orderstbl` SET `checkbox`='$rescheck' WHERE....")
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2016, 10:10
Ответы с готовыми решениями:

В базу данных записывается не тот код, который приходит по почте
1. Ситуация такая, пользователь нажимает на кнопку: "Забыли PIN - код?" 2. Открывается страница...

Нужен макрос который выделяет текст, который выделен маркером
В общем, нужна помощь в создании макроса, который выделяет всё, что выделено маркером. Требуется...

Выделен checkbox при нажатии кнопки назад в браузере
Собственно сама проблема в заголовке, 1 страница .jsp отмечаю два чекбокса (не больше, дальше...

TreeView и Checkbox. Выделить дочерние элементы, если выделен родительский
Доброго времени суток! Подскажите, как сделать, чтобы при выделении CheckBox напротив...

31
Эксперт PHP
3877 / 3218 / 1350
Регистрация: 01.08.2012
Сообщений: 10,859
01.09.2016, 10:53 2
Цитата Сообщение от n0kk Посмотреть сообщение
передаю выделеный checkbox
Если у вас несколько чекбоксов, дайте каждому уникальный id и передавайте его в ajax.
Цитата Сообщение от n0kk Посмотреть сообщение
что бы добавить именно в ту строку в базе где был нажат checkbox не понимаю логику саму
WHERE `id` = x, где x - номер чекбокса, переданный ajax'ом.
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
01.09.2016, 17:48  [ТС] 3
а как им присвоить уникальный id? checkbox генерируется php и выводится из цикла
PHP
1
2
3
while ($row=$result->fetch_assoc()) {
        echo "<tr class='bordertr'><td>".$i++."</td><td>"."<form class='formch'><input  type='checkbox' name='check' class='checkord' value='$row[tocorrob]'><label for='check1'>не принят</label></form>"."</td>", "<td>".$row["table"]."</td>", "<td>".$row["rangegactiv"]."</td>", "<td>".$row["name"]."</td>", "<td>".$row["tel"]."</td>", "<td>".$row["email"]."</td>", "<td>".$row["dateord"]."</td></tr>";
    }
Добавлено через 1 минуту
Jodah, типа что-то сделать
n=1;
<input type='checkbox' name='check' class='checkord' value='$row[tocorrob]'> id=checkbox.n++> ?
0
260 / 208 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
01.09.2016, 18:47 4
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
echo $html = <<<HTML
<tr class='bordertr'><td>{$i++}</td>
<td>
<form class='formch'>
<input  type='checkbox' name='check' class='checkord' value='{$row[tocorrob]}' id='{$id++}'>
<label for='check1'>не принят</label>
</form>
</td>
<td>{$row['table']}</td>
<td>{$row['rangegactiv']}</td>
<td>{$row['name']}</td>
<td>{$row['tel']}</td>
<td>{$row['email']}</td>
<td>{$row['dateord']}</td>
</tr>
HTML;
как-то так.
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 13:04  [ТС] 5
Тема снова стала актуальной, поэтому продолжил уже существующую, все так же не понятно как в базу записать значение checkbox, поставил флажок, записал 1 в бд и флажок остался, снял флажок 0.
Вывожу Checkbox
PHP
1
2
3
while ($row=$result->fetch_assoc()) {
echo "<tr class='bordertr'><td>".$i++."</td><td>"."<form class='formch'><input type='checkbox' name='check' class='checkord' value='$row[tocorrob]' id='$row[id]'><label for='check1'>не принят</label></form>"."</td>"</tr>";
}
Передаю клик по Checkbox через Ajax:
Javascript
1
2
3
4
5
6
7
8
9
10
11
$('.checkord').on('change', function(){
var sendData = $(this).closest('.formch').serialize();
$.ajax({
url: 'formcheck.php',
type: 'POST',
data: sendData,
success: function(data){
alert(data);
}
});
});
И сам обработчик
PHP
1
2
3
4
$_REQUEST['check'] ? $rescheck=0 : $rescheck=1;
 
require_once 'dbconnect.php';
$result = $conn -> query ("UPDATE vacanciestbl SET tocorrob='$rescheck' WHERE id ='$id'");
Помогите разобраться, так ничего не меняется

Добавлено через 20 часов 26 минут
Вообщем до меня ни как не доходит как правильно выбрать и добавить данные в базу именно в ту строку где был нажат checkbox, подскажите куда копать
0
Заблокирован
25.05.2017, 13:24 6
Имя чекбокса завяжите на id записи.

Добавлено через 8 минут
В качестве значения обычно просто пишут что-нить «непустое», например value="on".
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 13:29  [ТС] 7
miketomlin, а какой запрос делать к бд что бы именно ту выбирать строку?
имя как назначить?
name='check.$row[id]'

Добавлено через 2 минуты
miketomlin, у меня value из базы ставиться, если я on поставлю как его потом менять, checkbox потом могут и отжать а value останется on
0
Заблокирован
25.05.2017, 13:47 8
Если я правильно понял задачу, вы хотите менять состояние одной записи списка AJAX-запросом. Соответственно в запросе нужно передавать идентификатор записи, имя и новое значение поля (или все имена и значения скопом). В обработчике нужно проверить переданные данные на корректность, включая существование такой записи и поля, и подставить все в запрос. Состояние чекбокса можете сразу поменять, но наверно лучше вернуть обновленное состояние в ответ на запрос (или прежнее, если на стороне сервера возникла какая-то ошибка) и уже по результатам запроса обновить состояние, хотя тут возможно небольшое «подмораживание» – см. сами, как вам лучше.
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 13:53  [ТС] 9
Нужно что бы в зависимости если чекнут чекбокс то в базу заносится именно в той строке где чекнут 1 если нет то 0,
аякс уже сделал форму обработчик не могу сделать
создаю переменную в зависимости чекнут=1 нет=0
PHP
1
isset($_POST['check']) ? $checked = 1:$checked = 0;
это все работает
теперь нужно занести как то в базу то есть менять динамично значение в базе
0
Заблокирован
25.05.2017, 14:04 10
P.S.
Цитата Сообщение от n0kk Посмотреть сообщение
у меня value из базы ставиться, если я on поставлю как его потом менять
Обычно прописываемые значения чекбоксов не завязываются на соотв. значения в базе, т.к. там checked работает и пустое/отсутствующее значение при обычном запросе, но т.к. у вас AJAX-запрос, можете оба состояния передавать как-то явно, а при обработке достаточно опираться на одно опорное значение, например on. Если хотите, можете явно передавать в запросе 1 или 0, только не нужно сразу это транслировать в запрос к БД. Используйте (int)empty или тот же самый тернарный оператор с проверкой опорного значения.
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 14:20  [ТС] 11
miketomlin, Я Вас не понимаю, причем тут value в checkbox, все checkbox у меня генерируются автоматом
PHP
1
2
3
while ($row=$result->fetch_assoc()) {
        echo "<tr class='bordertr'><td>".$i++."</td><td>"."<form class='formch'><input  type='checkbox' name='check' class='checkord' value='$row[tocorrob]'><label for='check1'>не принят</label></form>"."</td>", "<td>".$row["table"]."</td>", "<td>".$row["rangegactiv"]."</td>", "<td>".$row["name"]."</td>", "<td>".$row["tel"]."</td>", "<td>".$row["email"]."</td>", "<td>".$row["dateord"]."</td></tr>";
    }
главное определить кликнул пользователь по нему или нет, value просто нужен для того, что бы потом галочка оставалась на месте после обновления страницы это уже через js реализуется условием, мне главное определить поставил ли он галочку что я и делаю здесь
PHP
1
isset($_POST['check']) ? $checked = 1:$checked = 0;
0
Заблокирован
25.05.2017, 14:23 12
Покажите пример входящих данных при AJAX-запросе.

P.S. Глянул демку на оф. сайте: serialize эмитирует обычный POST-запрос, т.е. при непроставленном чекбоксе у вас соотв. параметра не будет вообще.
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 14:26  [ТС] 13
miketomlin, я не пойму как мне запись найти в бд что бы соответствовала тому checkbox'у который передался в обработчик и уже туда добавить либо 0 либо 1
0
Заблокирован
25.05.2017, 14:29 14
Цитата Сообщение от miketomlin Посмотреть сообщение
Покажите пример входящих данных при AJAX-запросе.
Т.е. массив $_POST.

Добавлено через 1 минуту
Цитата Сообщение от n0kk Посмотреть сообщение
я не пойму как мне запись найти в бд что бы соответствовала тому checkbox'у который передался в обработчик и уже туда добавить либо 0 либо 1
Я вам сказал, что нужно передавать идентификатор записи в AJAX-запросе. Покажите данные, кот. я просил.
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 14:36  [ТС] 15
Если поставить галочку то передается Array ([check]) =>
если убрать то Array ( ) =>
0
Заблокирован
25.05.2017, 14:42 16
И как вы из этих данных собираетесь определять, какую запись нужно изменять?

Добавлено через 3 минуты
Значение чекбокса тоже не вижу. Пропишите что-нить непустое, как выше сказал (для надежности).
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 14:47  [ТС] 17
miketomlin, в базу заносится не сам чекбокс а переменная которая в зависимости от чекнутый чекбокс или нет принимает вид 1 или 0,
добавил в value значение on тоже самое выводит
0
Заблокирован
25.05.2017, 14:50 18
Цитата Сообщение от n0kk Посмотреть сообщение
добавил в value значение on тоже самое выводит
Это понятно, но так будет лучше.
0
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
25.05.2017, 14:50  [ТС] 19
miketomlin, на сколько я понимаю не value передается в обработчик формы
0
Заблокирован
25.05.2017, 14:57 20
Что касается осн. на данный момент проблемы, это либо сами, либо в др. раздел форума: JS/jQuery. Я по таким вопросам сам часто бегаю к коллегам.

Добавлено через 3 минуты
Цитата Сообщение от n0kk Посмотреть сообщение
на сколько я понимаю не value передается в обработчик формы
Там др. механизм. Из написанного мной уже можно было понять: проставляете чекбокс – передается значение с параметром, не ставите – скорее всего даже параметра не будет (в нек. софте может быть пустой параметр).
0
25.05.2017, 14:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2017, 14:57
Помогаю со студенческими работами здесь

Как добавить добавить данные в базу данных посредством LINQ
Как добавить добавить данные в базу данных посредством LINQ to SQL Ошибка: Нарушение...

Строка: Как удалить начальный символ в строке и добавить тот же символ (который удалили) в конец строки?
Как удалить начальный символ в строке и добавить тот же символ (который удалили) в конец строки? ...

ASP, который должен добавить данные в базу ACCES, присланные формой.
Вот код ASP, который должен добавить данные в базу ACCES, присланные формой. &lt;%...

Добавить поиск в базу данных
Нужно сделать поиск по базе данных как показано на рисунке только в лазарусе. Не надо выделять всю...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru