php
2010-06-02 78 views 0 likes 
0

我具有例如这样的代码:如何在提交表单时获取未勾选的复选框列表?

$b = ""; 
while ($row = mysql_fetch_array($rows)) { 
     if ($row['enabled'] == 1) { 
        $b = "checked"; 
       } else { 
        $b = "": 
        } 

回声“< \输入名称= '南[$行[ID]]' 类型= '复选框' 值= '$行[ID]' $ B/>“;

}

当我执行这个代码,我会得到一个复选框列表,其中一些检查,有些则没有。

我可以使用此代码来获取选中的复选框的列表。

if (isset($_POST['sub'])) { //check if form has been submitted or not 
$nam = $_POST['nam']; 
if (!empty($nam)) { 

       foreach($nam as $k=>$val){ 

    // proccess operation with checked checkboxes 
       } 

}   

我需要知道如何在提交表单后获得unckecked复选框列表。

在此先感谢。

回答

0

如果复选框是动态创建的,这是一个简单的任务:

创建一个命名约定。例如,假设每个复选框都绑定到DB中的一行,DB中的每一行都有一个主键。您可以命名基于关每个复选框此项:

 
<input type="checkbox" id="foo_1" name="foo_1" /> 
<input type="checkbox" id="foo_2" name="foo_2" /> 
<input type="checkbox" id="foo_3" name="foo_3" /> 

现在,当提交表单时,你可以查询数据库来获取ID和如下处理该请求:

 

$res = mysql_query("select * from foo;"); 
while($row = mysql_fetch_array($res)) 
    $checked = isset($_POST["foo_{$row['id']}"); 
    ... 
} 
 
0

浏览器发送对于没有选中框,所以你唯一的希望是建立一个隐藏字段,告诉你每个复选框的名称(或添加一个隐藏字段的每个复选框)。

+0

我不认为创建隐藏的字段是个好主意,因为如果我的数据库中有100行,我将需要100个隐藏字段! – Saleh 2010-06-02 16:53:54

+0

然后创建包含所有复选框/ IDS,以逗号分隔的一个隐藏字段。 – barrycarter 2010-06-02 17:03:44

+0

后,我创建这个隐藏字段与所有复选框/ IDS,以逗号分隔。我怎么能知道未经检查的。 – Saleh 2010-06-02 17:09:39

相关问题