处理HTML复选框及其值

时间:2011-12-23 07:11:57

标签: php html forms checkbox

如果选中复选框并且仅获取已选中复选框的值,我该如何处理复选框。

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" />

1 个答案:

答案 0 :(得分: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" />