[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: checkbox'ы
pultter
салют всем читающим это сообщение!
итак, к делу. есть мини-форма (потом она будет намного больше): один checkbox и submit.
на самом деле это будет страница настроек. пользователь должен поставить галочку, если хочет получать уведомления на email. хотелось бы, чтобы эти настройки сохранились в бд. если выделить checkbox и нажать submit то результат заносится в бд (там появляется циферка 1), а если не выделять checkbox то результат никак не обновляется.. как достичь желаемого - ума не приложу... может вы подскажете?
вот мой скромный код:

<?php
if (count($_POST)>0):
if ($pci_attendance == "on") {
$pci_attendance = 1;
$query = mysql_query("UPDATE setting SET pci_attendance='".$pci_attendance."'");
} else {
$pci_attendance = "0";
$query = mysql_query("UPDATE setting SET pci_attendance='".$pci_attendance."'");
}
endif;
print " <a href=index.php>На главную</a><br>
<form action=setting.php method=post>
<input type=checkbox name=pci_attendance "
.$checked."> Печатать комментарии в \"Посещаемости\"<br>
<input type=submit value=Сохранить>
</form>"
;
?>




Спустя 13 минут (2.03.2010 - 21:40) MatrixGod написал(а):
<html>

<form
action="index.php" method="post">
<input
type="checkbox" name="email" value="1">
<input
type="submit">
</form>

</html>

<?


if($_POST[email] == 1)
{
mysql_query(" la la la ");
}

?>

Спустя 1 час, 42 минуты, 55 секунд (2.03.2010 - 23:23) ApuktaChehov написал(а):
Насколько я знаю, в PHP, если галочку не ставить, то переменная от чекбокса вообще не создается.
По этому, думаю, что достаточно проверить ее на существование.

P.S. В JS, как раз такое дело возвращает либо on либо off, в свое время постоянно путал, где и что возвращается biggrin.gif

Спустя 14 часов, 29 минут, 57 секунд (3.03.2010 - 13:52) pultter написал(а):
ApuktaChehov, вот так не работает:
<html>

<form
action="testing.php" method="post">
<input
type="checkbox" name="email" value="1">
<input
type="submit">
</form>

</html>

<?
Error_Reporting(E_ALL & ~E_NOTICE);
if (count($_POST['email'])>0):
if (!isset($email)) {
print "не выделен!";
} else {
print "выделен";
}
endif;
?>

работает только без if (count($_POST)) а это не всегда хорошо..

Спустя 2 дня, 9 часов, 45 минут, 31 секунда (5.03.2010 - 23:38) pultter написал(а):
без if (count($_POST)>0) ничего не сохраняется... точнее сохраняется, но при каждой загрузке перезаписывается... так можно решить эту проблему как то или нет? подскажите если не трудно

Спустя 2 дня, 23 часа, 1 минута, 24 секунды (8.03.2010 - 22:39) ZeNkoT написал(а):
<input type="checkbox" name="email" value="1">

Если поле checkbox активно, то оно возвращает значение on, иначе ничего.

Спустя 4 минуты, 17 секунд (8.03.2010 - 22:44) ZeNkoT написал(а):
<html>
<
form action="ex.php" method="post">
<
input type="checkbox" name="email" checked="checked">
<
input type="submit" name="ok">
</
form>
</
html>
<?php
// Если пришли данные с формы
if(isset($_POST['ok'])) {

if($_POST['email'] == 'on')
echo '<h4>Activ</h4>';
else
echo '<h4>Not checked</h4>';

}
?>

Спустя 1 час, 6 минут, 51 секунда (8.03.2010 - 23:51) HeXoN написал(а):
Эм.... я нуб но я проверяю чекбоксы таким способом
и всё работает не спорю мой код может и дырявый и корявый но пока что ничего другого не придумал просьба сильно не пинать.

логично проверка после отсылки данных

	

<input name="email" type="checkbox" value="tut kakajnit velichina">




//$ch_cnotrol переменная с названием (name) checkbox для примера стоит email (хотя можетбыть и другая надпись)
$ch_cnotrol = "email";
// елементу $ch_cnotrol массива $_POST то присвоить если нечего присваивать то не создают такого элементаы
if($_POST[$ch_cnotrol]>0)
{
// заносим данные из checkbox в переменную
$checbox = $_POST[$ch_cnotrol] ;
}

Спустя 11 часов, 12 минут, 28 секунд (9.03.2010 - 11:03) pultter написал(а):
ZeNkoT, премного благодарен!!!

Спустя 1 год, 1 месяц, 6 дней, 13 часов, 54 минуты (15.04.2011 - 23:57) idadmin написал(а):
Цитата (ZeNkoT @ 8.03.2010 - 19:44)
<html>
<
form action="ex.php" method="post">
<
input type="checkbox" name="email" checked="checked">
<
input type="submit" name="ok">
</
form>
</
html>
<?php
// Если пришли данные с формы
if(isset($_POST['ok'])) {

  if($_POST['email'] == 'on')
  echo '<h4>Activ</h4>';
  else
  echo '<h4>Not checked</h4>';

}
?>


А если несколько чекбоксов?
То придется создавать условие для каждой новой переменной? Или как? :wacko:


_____________
Напишу индусский код. Бесплатно
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.