2013-06-18 77 views
0

我希望做一个检查与PHP FOREACH功能是这样的:PHP的foreach用HTML或CSS检查

if (isset($_POST['name'])) { 
     foreach ($_POST['name'] as disabled="true") { 
      //do something 
     } 
    } 

残疾人=真正来自一个复选框,输入我节省提交。我的问题是:我可以检查POST,foreach已禁用=“真”的复选框。或者在某种情况下只有在情况发生时才做一件事?

+1

如果($ _ POST [“名”]只包含一个值,没有必要为foreach语句,您可以只增加一个额外的检查到IF条件,如下所示:if(isset($ _ POST ['name'])&& isset($ _ POST ['checkbox_name'])){// do stuff} –

+0

为什么需要禁用框可编辑?为什么不是隐藏值? – amigura

+0

如果禁用,我不希望盒子被计数 – Rocksteady

回答

0

禁用和未选中的复选框都不会发送到服务器,因此无法区分这两者。

您可以添加一些隐藏字段,并根据用户的操作使用javascript设置其值。

注意readonly不上复选框的工作,例如参见Can HTML checkboxes be set to readonly?

1

禁用字段不发送到服务器 - 使用readonly代替。

此外,我希望你明白,foreach ($_POST['name'] as disabled="true")不是一个有效的PHP代码,并使用它,就像伪代码。

+0

是的,我知道它不会工作,但我想要检查输入是否设置为禁用=“true”,如果他们这样做我不会计算该“名称” – Rocksteady

1

如果是这种情况,你不希望未经检查和禁用计数,那会使它更容易一些。

单检查

if (isset($_POST['check2'])) 
{ 
    //do something 
} 

多个检查

$check_array=array('check1','check2','check3'); // check box names 

    foreach ($check_array as $v) 
{ 

    if (isset($_POST[$v])) 
    { 
    //do something 
    } 

} 

<form action="" method="post"> 
<input name="check1" type="checkbox" disabled value="check1" checked="checked" /> 
<input name="check2" type="checkbox" value="check2" checked="checked" /> 
<input name="check3" type="checkbox" value="check3" /> 
<input name="" type="submit" /> 
</form>