Ответ 1
Если флажок не отмечен, на сервер ничего не отправляется. Вместо этого вы можете указать значение по умолчанию:
$subcheck = (isset($_POST['subcheck'])) ? 1 : 0;
Я использую простой HTML-флажок в форме, чтобы поставить 1 для отмеченного и 0 для непроверенных в поле под названием "subcheck" в таблице MySQL.
Установлен ли флажок по умолчанию для 1 для "checked" и 0 для unchecked? Если нет, как я могу дать ему эти значения?
Спасибо заранее,
Джон
форма:
<div class="subcheck"><INPUT TYPE=CHECKBOX NAME="subcheck">Click here to receive free money in the mail.<P></div>
В файле форма отправляется:
$subcheck = $_POST['subcheck'];
mysql_query("INSERT INTO submission VALUES (NULL, '$uid', '$title', '$slug', '$cleanurl', '$displayurl', NULL, '$subcheck')");
Таблица MySQL:
`submission` (
`submissionid` int(11) unsigned NOT NULL auto_increment,
`loginid` int(11) NOT NULL,
`title` varchar(1000) NOT NULL,
`slug` varchar(1000) NOT NULL,
`url` varchar(1000) NOT NULL,
`displayurl` varchar(1000) NOT NULL,
`datesubmitted` timestamp NOT NULL default CURRENT_TIMESTAMP,
`subcheck` tinyint(1) NOT NULL,
PRIMARY KEY (`submissionid`)
)
Если флажок не отмечен, на сервер ничего не отправляется. Вместо этого вы можете указать значение по умолчанию:
$subcheck = (isset($_POST['subcheck'])) ? 1 : 0;
Чтобы быть уверенным, что всегда отправлено 1 или 0, вы можете вставить вход, скрытый с тем же name
из флажка в html:
//The input hidden
<input type="hidden" name="subcheck" value="0" />
//The checkbox
<input type="checkbox" name="subcheck" value="1" />
Таким образом, вам не нужно проверять серверную сторону, если установлено текстовое поле;)
Если флажок снят, то $subcheck вообще не отправляется.
В PHP вы должны написать:
if !(isset($_POST['subcheck']))
$subcheck = 0;
mysql_query("INSERT INTO submission VALUES (NULL, '$uid', '$title', '$slug', '$cleanurl', '$displayurl', NULL, '$subcheck')");
u должен попробовать оператор if или тернарный. если (Исеть ($ _ POST [ 'subcheck'])) $ subcheck = 1; еще $ subcheck = 0;
или вы можете попробовать $ subcheck = (isset ($ _ POST ['subcheck']))? 1: 0;
а в базе данных u следует использовать тип перечисления для subcheck
Это можно использовать следующим образом
<input type="checkbox" name="status" value="1" >
$status = (isset($_REQUEST['status']));
if ($status == 1 )
{
$status = 1;
}
else
{
$status = 0;
}
echo $status;