【发布时间】:2013-03-09 09:24:55
【问题描述】:
我有一个表单,可以让用户订阅和取消订阅时事通讯,“表单”本身如下所示:
复选框是使用以下代码动态创建的:
<?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 个单选按钮?如果您有任何问题或需要更多信息,请在 cmets 中提问。提前谢谢!
注意: 并不总是 3 行,这些行是根据数据库中的行数动态创建的。
编辑: 感谢Jueecy's answer:
<?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 个其他问题,ID 为 1 的行不再显示。有人知道如何解决这个问题吗?^^
【问题讨论】:
-
相反,您可以
implode发布数组并插入数据库并在显示时使用explode显示它。 -
@DipeshParmar,也许你的意思是
implode? -
@Jueecy yes..gosh 现在连打字都不会了..
-
iarc,同一个名字只能选择一个电台选项。所以你可以为每一行放置不同的名称属性?
标签: php radio-button