Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP+Checkbox+MySQL

382
24 марта 2003 года
dodger
164 / / 07.02.2003
Люди, помогите! Никак не могу врубиться как обрабатывать события checkbox'a. Т.е. Допустим ставим галку, делаем сабмит, и тогда в какое-нибудь поле в базу передается 1. Если галку сняли и опять сделали сабмит, то в базу - 0. Как обработать это долбанное событие. Никак не пойму. Помогите, plz!!!:o
250
24 марта 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by dodger
Люди, помогите! Никак не могу врубиться как обрабатывать события checkbox'a. Т.е. Допустим ставим галку, делаем сабмит, и тогда в какое-нибудь поле в базу передается 1. Если галку сняли и опять сделали сабмит, то в базу - 0. Как обработать это долбанное событие. Никак не пойму. Помогите, plz!!!:o


Делай уникальное имя у каждого чек бока а потом проверяй какие существует единички какие нет 0
<input type=checkbox name='check$count' ..

382
25 марта 2003 года
dodger
164 / / 07.02.2003
Цитата:
Originally posted by Joker

Делай уникальное имя у каждого чек бока а потом проверяй какие существует единички какие нет 0
<input type=checkbox name='check$count' ..


В том то и дело, что чекбокс один, просто он в цикле While выводится в зависимости от кол-ва записей в базе. Допустим есть такая конструкция:
<input type="checkbox" name="active" value="1">
Как проверить когда он зачекен, а когда - нет? Где переменную ставить? Я делал так:
<input type="checkbox" name="active" value="1" <?if($active==1) echo(" checked ");?>>
if($active==1){
$checked=1;}else{
$checked=0;}
И когда выводил принтом, то все работало нормально, а как попробовал такую же операцию провернуть с базаой через UPDATE...SET, так нифига не получилось. вот!

4
25 марта 2003 года
mike
3.7K / / 01.10.2002
Код:
<?
$chk1=$HTTP_GET_VARS["chk1"]

$chk1=($chk1=="on")?1:0;

mysql_query("UPDATE... SET box1='$chk1';");

?>
<form action=<?=$PHP_SELF;?> method=get>
<input type=checkbox <?=($chk1==1)?"checked":""; ?> name=chk1>
<input type=submit>


Набирал прямо тут, могут быть ошибки.
382
25 марта 2003 года
dodger
164 / / 07.02.2003
Спасибо, все заработало, но вот в чем фишка, как я говорил, таблица выводится через while и поэтому тыкая на один чекбокс - затыкиваются все. Это потому, наверное, что у них у всех имя одинаковое? Че-то я очень туплю с этими чекбоксами, но очень прошу помочь, чтобы разобраться раз-и-навсегда. Вот код:
<?
@mysql_connect($HOST, @LOGIN, $PASS) or die ("Couldn't connect to server ".mysql_error());
@mysql_select_db($DB) or die("Couldn't connect to database ".mysql_error());
?>
<?
$chk1=$HTTP_GET_VARS["chk1"];
$chk1=($chk1=="on")?1:0;
$result1=mysql_query("UPDATE orders SET cust_id='$chk1'");
?>
<?
$result=mysql_query("SELECT * FROM orders");
?>
<table>
<tr>
<td>order_id</td>
<td>cust_id</td>
</tr>
<?while($row = mysql_fetch_array($result))
{
?>
<tr>
<td><?print ("${row['order_id']}");?></td>
<td>
<form action="check.php" method="get">
<input type=checkbox <?($chk1==1)?" checked":"";if($chk1==1) echo " checked ";?> name=chk1> </td>
</tr>
<?};?>
</table>
<input type=submit>
</form>
283
25 марта 2003 года
Alone
910 / / 20.11.2002
Либо зделай именна разные (как предлагал Joker самое простое и надежное решение)
либо через массив смотри
382
25 марта 2003 года
dodger
164 / / 07.02.2003
Цитата:
Originally posted by Alone
Либо зделай именна разные (как предлагал Joker самое простое и надежное решение)
либо через массив смотри


Да, наверное через цикл For, присвою им разные имена.

283
25 марта 2003 года
Alone
910 / / 20.11.2002
Хм... я конечно в PHP не силен но....
1. UPDATE orders SET cust_id='$chk1' обнавит ВСЕ строки в таблице. Так и должно быть.
2. <?($chk1==1)?" checked":"";if($chk1==1) echo " checked ";?> Странная конструкция... ну да ладно...
Это отметить ВСЕ поля в форме если выбранно поле с именем chk1
3. Странная структура документа получится что то типа <form>... <form> ... и т.д. и в конце один </form> возможны глюки в некоторых браузерах... или во многих... не уверен... всеравно не понятно зачем окружать каждое поле отдельной формой ?

Вы хотели вывести из таблици все поля, отметить галочками поля которые были "отмеченны", и что бы из браузера можно было менять отмеченно/не отмеченно поле.
Так вы хотели ?
382
25 марта 2003 года
dodger
164 / / 07.02.2003
Цитата:
Originally posted by Alone
Вы хотели вывести из таблици все поля, отметить галочками поля которые были "отмеченны", и что бы из браузера можно было менять отмеченно/не отмеченно поле.
Так вы хотели ?



да-да, именно так, если бы вы мне в этом помогли, то былобы чудесно, а то я что-то совсем запутался.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог