2011-12-23 66 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