我创建了一个包含多个复选框的html页面。
<input type="checkbox" name="option_one" value="YES" class='checkbox_divs' >Option one<br>
<input type="checkbox" name="option_two" value="YES" class='checkbox_divs' >Option two<br>
<input type="checkbox" name="option_three" value="YES" class='checkbox_divs' >Option Three<br>
用户提交它并调用php页面以这种方式将其发送到SQL数据库:
$strSQL = "INSERT INTO CLDETAILS (option_one, option_two, option_three)
VALUES
('$_POST[option_one]','$_POST[option_two]','$_POST[option_three]')";
if (sqlsrv_query($conn,$strSQL))
{
echo "Saved !";
}
else
{
echo "Error Save [".$strSQL."]";
print_r( sqlsrv_errors());
}
?>
一切正常,只是我想要改进我的代码并避免出现“通知:未定义的索引:......”之类的错误。 我知道我应该使用“isset”但我在PHP中开始,我真的不知道应该如何使用它。 谢谢你的帮助。
答案 0 :(得分:0)
你可以像这样使用它
if(!isset($_POST['option_one']))
$_POST['option_one'] = 'NO';
还要确保在将数据插入数据库之前解析数据以避免sql注入,我建议你使用mysqli或pdo
答案 1 :(得分:0)
试试这个,
$opt1 = isset($_POST[option_one]) ? $_POST[option_one] : 'NO';
$opt2 = isset($_POST[option_two]) ? $_POST[option_two] : 'NO';
$opt3 = isset($_POST[option_three]) ? $_POST[option_three] : 'NO';
$strSQL = "INSERT INTO CLDETAILS (option_one, option_two, option_three)
VALUES
('".$opt1."','".$opt2."','".$opt3."')";
if (sqlsrv_query($conn,$strSQL))
{
echo "Saved !";
}
else
{
echo "Error Save [".$strSQL."]";
print_r( sqlsrv_errors());
}
答案 2 :(得分:0)
我在这里改进了你的代码
$opt1 = (isset($_POST['option_one'])) ? 1 : 0;
$opt2 = (isset($_POST['option_two'])) ? 1 : 0;
$opt3 = (isset($_POST['option_three'])) ? 1 : 0;
$strSQL = "INSERT INTO CLDETAILS (option_one, option_two, option_three)
VALUES ('$opt1', '$opt2', '$opt3')";
if (sqlsrv_query($conn,$strSQL)) echo "Saved !";
else
{
echo "Error Save [".$strSQL."]";
print_r( sqlsrv_errors());
}
?>
答案 3 :(得分:0)
$option = array();
$option[0] = (isset($_POST[option_one])? $_POST[option_one] : NULL);
$option[1] = (isset($_POST[option_two])? $_POST[option_two] : NULL);
$option[2] = (isset($_POST[option_three])? $_POST[option_three] : NULL);
$strSQL = "INSERT INTO CLDETAILS (option_one, option_two, option_three)
VALUES
('$option[0], $option[1], $option[2]')";
OR
添加与复选框字段同名的隐藏字段,以设置未选中字段的标准值
<input type="hidden" name="option_one" value="NO" >
<input type="checkbox" name="option_two" value="YES" class='checkbox_divs' >Option one<br>
<input type="hidden" name="option_one" value="NO" >
<input type="checkbox" name="option_two" value="YES" class='checkbox_divs' >Option two<br>
<input type="hidden" name="option_three" value="NO" >
<input type="checkbox" name="option_three" value="YES" class='checkbox_divs' >Option Three<br>