ニュースレターの購読と購読解除を行うことができるフォームがあります。「フォーム」自体は次のようになります。
チェックボックスは、次のコードで動的に作成されます。
<?php
$i = 0;
while($objResult1 = mysql_fetch_array($objQuery1))
{
$i++;
?>
<tr>
<td><div align="center"><?=$objResult1["ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["ID"];?>"> </div></td>
<td><div align="center"><?=$objResult1["Titel"];?> </div></td>
<td><div align="center"><input type="checkbox" name="sub[]" value="10"> </div></td>
<td><div align="center"><input type="checkbox" name="sub[]" value="90"> </div></td>
</tr>
<?php
}
?>
次のようなデータベースに値を挿入する別のスクリプトで値を使用します。
foreach($_POST['sub'] as $i=>$s){
$sql = mysql_query("INSERT INTO Subscriptions (Klant_ID, Mail_ID, Status, Datum) VALUES ('".$Klant_ID."', '".$_POST['mailid'][$i]."', '".$s."', '".$Datum."')") or die(mysql_error());
}
ただし、問題は、すべての行で両方のチェックボックスを選択できることです(基本的にすべてのチェックボックスを選択できます)。入力タイプを「ラジオ」に設定すると、6つのラジオボタンのうち1つしか選択できません。これを機能させて、各行で1つのラジオボタンを選択できるようにする方法はありますか?ご不明な点がある場合や詳細情報が必要な場合は、コメントでお尋ねください。事前にThnx!
注:常に3行であるとは限りません。行は、データベースにある行数に応じて動的に作成されます。
編集:Jueecyの答えの おかげで、このコードで動作するようになりました:
<?php for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) : ?>
<tr>
<td><div align="center"><?=$objResult1["ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["ID"];?>"> </div></td>
<td><div align="center"><?=$objResult1["Titel"];?> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="10"> </div></td>
<td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="90"> </div></td>
<tr>
<?php endfor; ?>
現在、他に1つだけ問題があり、ID1の行が表示されなくなりました。誰もがこれを修正する方法を知っていますか?^^