我有一个带有多个复选框的字段集,用于表单中的MySQL插入。
<fieldset id="my_checkboxes">
<legend>My Checkboxes (Select at least 2)</legend>
<label for="checkbox1">
<input type="checkbox" id="checkbox1" value="yes" name="the_checkbox" />
CheckBox #1
</label>
<label for="checkbox2">
<input type="checkbox" id="checkbox2" value="yes" name="the_checkbox2" />
CheckBox #2
</label>
</fieldset>
我需要能够让每个复选框都具有唯一的NAME属性,因为每个复选框都会将数据插入到数据库中自己的列中。 (否则,我只会使用the_checkbox[]
作为每个的名称)。
我的问题是我需要让用户选择至少2个复选框才能提交表单。由于我每个都有单独的名称,因此不能使用以下代码,因为它按名称计算:
$checkboxcount = count($_POST['the_checkbox']);
if($checkboxcount < 1)
{
$errors[] = $checkboxcount;
}
MY SQL语句如下所示:
$sql = "INSERT INTO $db_table(the_checkbox,the_checkbox2) values
(
'".mysql_real_escape_string(stripslashes($_REQUEST['the_checkbox']))."',
'".mysql_real_escape_string(stripslashes($_REQUEST['the_checkbox2']))."'
)";
你建议我使用A.计算复选框,即使是单独的名字,或B.保持相同的名称,但不知何故以单独的列名称将数据插入MySQL?
答案 0 :(得分:2)
如果您希望保留不同的名称,请执行以下操作:
$chkbox_count = 0;
if (isset($_POST['the_checkbox']) && $_POST['the_checkbox'] == "yes") $chkbox_count++;
if (isset($_POST['the_checkbox2']) && $_POST['the_checkbox'] == "yes") $chkbox_count++;
// etc...
我通常更喜欢使用相同的名称来复制相关的组,但是使用不同的值,但是将它们直接交给SQL字符串的方式使得不同名称的方法更容易处理。 / p>