私の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 つ以上のチェックボックスを選択しませんでした (あなたのコードはこれを行います)
彼は 1 つの配列から 1 つ以上のチェックボックスを選択しました (つまり、合計 4 つを選択する必要があり、それぞれ 1 つだけを選択することはできません) - これはあなたのコードでは発生していないと思います。そうですか?
ありがとうございました