2011-12-23 76 views
1

如何處理複選框,僅當它們被選中並且僅抓取選中的複選框的值時。處理HTML複選框及其值

PHP

if (is_array($_POST['add'])) { 
    foreach ($_POST['add'] as $key => $value) { 
    $_POST['add'][$key] = mysql_real_escape_string(stripslashes($value)); 
    } 
} 

HTML

<input type="checkbox" id="wmeet_ce" 
     value="ce" 
     name="add[wmeet]" 
     title="Wanting To Meet" 
     class="checkbox {validate:{required:true,minlength:1}}"/> 

<input type="checkbox" id="wmeet_sf" 
     value="sf" 
     name="add[wmeet]" 
     class="checkbox"/> 

<input type="checkbox" id="wmeet_sm" 
     value="sm" 
     name="add[wmeet]" 
     class="checkbox" /> 

回答

3

只有選中的複選框是不斷呈現給PHP,那麼你的PHP代碼是正確的。

但是,您的HTML不正確,因爲您所有的複選框都具有相同的名稱。這意味着PHP將只會見到其中的一個。

爲了獲得複選框的數組您可能需要給你的複選框唯一的名稱這樣

<input type="checkbox" id="wmeet_ce" 
     value="ce" 
     name="add[ce]" 
     title="Wanting To Meet" 
     class="checkbox {validate:{required:true,minlength:1}}"/> 

<input type="checkbox" id="wmeet_sf" 
     value="sf" 
     name="add[sf]" 
     class="checkbox"/> 

<input type="checkbox" id="wmeet_sm" 
     value="sm" 
     name="add[sm]" 
     class="checkbox" /> 

或者使用空盒技術是這樣的。

<input type="checkbox" id="wmeet_ce" 
     value="ce" 
     name="add[]" 
     title="Wanting To Meet" 
     class="checkbox {validate:{required:true,minlength:1}}"/> 

<input type="checkbox" id="wmeet_sf" 
     value="sf" 
     name="add[]" 
     class="checkbox"/> 

<input type="checkbox" id="wmeet_sm" 
     value="sm" 
     name="add[]" 
     class="checkbox" /> 
+0

當我使用空技術時會發生什麼,它會檢索複選框的值,即ce,sf和sm? – acctman 2011-12-23 08:25:05

+1

你將得到一個帶有選中值的索引數組。如果使用其他技術,你將得到一個關聯數組。 – GordonM 2011-12-23 08:33:26