我遇到类似帖子的问题:
how to check multiple $_POST variable for existence using isset()?
我的问题是,我有一个相当大的复选框列表,如果检查它们是为了设置$ row的状态,我需要知道。它就像所提到的剧本一样,全部和所有,除了我已经和OR投入到作品中。
if ( isset($_POST['Facial1'])
&& ($_POST['Facial2'])
&& ($_POST['Facial3'])
&& ($_POST['Facial4'])
&& ($_POST['Intra-Oral1'])
&& ($_POST['Intra-Oral2'])
&& ($_POST['Intra-Oral3'])
&& ($_POST['Intra-Oral4'])
&& ($_POST['Intra-Oral5'])
&& ($_POST['Intra-Oral6'])
&& (
(
($_POST['X-Ray1'])
&& ($_POST['X-Ray3'])
)
|| ($_POST['X-Ray5'])
)
)
{
$Status = 1;
} else {
$Status = 0;
}
每次运行测试时,只要它到达未检查的元素,就会抛出错误:undefined index:xxx。其中xxx是第一个未检查的项目。
答案 0 :(得分:1)
未检查的复选框不会作为POST正文的一部分发送。您的代码需要使用isset:
persons
答案 1 :(得分:1)
isset()
允许您一次检查一个变量isset($var)
或多个变量isset($var,$var1,$var2)
这将返回true,如果全部存在则返回false,如果未设置一个或多个,则返回false。
你的代码只检查一个然后做得好我不知道是什么
尝试
if ( isset(
$_POST['Facial1'], $_POST['Facial2'], $_POST['Facial3'],
$_POST['Facial4'], $_POST['Intra-Oral1'], $_POST['Intra-Oral2']
$_POST['Intra-Oral3'], $_POST['Intra-Oral4'],
$_POST['Intra-Oral5'], $_POST['Intra-Oral6']
)
&&
(
isset($_POST['X-Ray1'], $_POST['X-Ray3'])
||
isset($_POST['X-Ray5'])
)
)
{
$Status = 1;
} else {
$Status = 0;
}
我希望这是你的意图,从你的代码中不是很明显。