我的 select.php 中有 9 个复选框
<form method="post" action="test.php">
<input type="checkbox" name="g1[]" id="c1" value="c1">
<input type="checkbox" name="g1[]" id="c2" value="c2">
<input type="checkbox" name="g1[]" id="c3" value="c3">
<input type="checkbox" name="g2[]" id="h1" value="h1">
<input type="checkbox" name="g2[]" id="h2" value="h2">
<input type="checkbox" name="g2[]" id="h3" value="h3">
<input type="checkbox" name="g3[]" id="d1" value="d1">
<input type="checkbox" name="g3[]" id="d2" value="d2">
<input type="checkbox" name="g3[]" id="d3" value="d3">
</form>
好的,我的 test.php 现在看起来像这样:
error_reporting(E_ALL);
$g1 = $_POST['g1'];
$g2 = $_POST['g2'];
$g3 = $_POST['g3'];
//Connect to DB
$ng1 = count($g1);
$ng2 = count($g2);
$ng3 = count($g3);
$sum = 0;
for ($i = 1; $i <= 3; $i++)
{
$arr = "g$i";
if (!isset($_POST[$arr]))
${$arr} = array();
else
${$arr} = $_POST[$arr];
if (!is_array(${$arr}))
die("Error in input parameter $arr");
${"ng$i"} = count(${$arr});
if (${"ng$i"} < 1)
die("At least one $arr checkbox must be checked");
$sum += ${"ng$i"};
${"g$i"."_sql"} = implode(',', array_map(${$arr}, 'mysql_real_escape'));
}
$query="INSERT INTO ch_lg (g1, g2, g3) VALUES ('$g1_sql','$g2_sql','$g3_sql')";
mysql_query($query) or die(mysql_error());
mysql_close();
//echo message
}
修改问题
我需要检查一下:
用户从每个数组中选择了 1 个复选框(您的代码执行此操作)
他没有选择超过 4 个复选框(您的代码执行此操作)
他从 JUST 一个数组中又选择了 1 个复选框(这意味着他必须总共选择 4 个,并且每个只有 1 个是不可接受的) - 我认为这在您的代码中没有发生。可以?
谢谢