php
2010-06-02 123 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

相關問題