同时点击复选框

时间:2012-09-27 03:11:30

标签: php html

当在php中勾选两个复选框时,如何调用方法?

if (isset($_POST['check1'])) 
{data1();}

else if (isset($_POST['check2']) 
{data2();}

以上适用于单个复选框。我勾选它的那一刻它只会调出data1()。我尝试了以下内容。

else if(isset($_POST['check1']) && ($_POST['check2'])) 
{data1and2();}

else if(isset($_POST['check1']) && ($_POST['check2']))
{data1and2();}   

3 个答案:

答案 0 :(得分:2)

isset

您错过了$_POST['check2']
 if(isset($_POST['check1']) && isset($_POST['check2'])) {
    data1and2();
 }

这个条件应该是第一个。

 if(isset($_POST['check1']) && isset($_POST['check2'])) {
    data1and2();
 } else if (isset($_POST['check1'])) {
    data1();
 } else if (isset($_POST['check2'])) {
    data2();
 }

答案 1 :(得分:1)

为什么不分开if语句?

if(isset($_POST['check1']))
    data1();

if(isset($_POST['check2']))
    data2();

如果你需要一个不同的功能,当它们被检查时,你可以做这样的事情。

list($flag1, $flag2) = array(isset($_POST['check1']), isset($_POST['check2']));

if($flag1 && flag2)
    data1and2();
else if($flag1)
    data1();
else if($flag2)
    data2();

答案 2 :(得分:0)

我相信你的逻辑是关闭的。在单身的情况下,这种逻辑很好,但如果你同时检查两者,isset check1将被触发,脚本不知道它应该检查它应该采取不同的行动,如果两者都检查。您最好的选择是将if检查两个检查首先,然后检查单个框,如下所示:

if (isset($_POST['check2'] && isset($_POST['check1']))
{data1and2();}

else if (isset($_POST['check1'])) 
{data1();}

else if (isset($_POST['check2']) 
{data2();}