我遇到了PHP中的html复选框的一些奇怪问题。问题是:我有默认使用'checked =“checked”'属性检查的选项,如果我取消选中它们,php仍然算作一个复选框。
是否有解决此问题的解决方法?
这是默认情况下检查某些框的内容:
<?php
foreach($User->listRanks() as $rank):
?>
<tr>
<td></td>
<td width="30">
<input type="checkbox" <?php if ($action == "edit") echo ($User->checkRank($rank->id_rank, $info->id_user_admin) > 0 ? 'checked="checked"':'');?> name="rank_item[]" value="<?php echo $rank->id_rank;?>" />
</td>
<td><?php echo utf8_encode($rank->title_rank);?></td>
</tr>
<?php
endforeach;
?>
这是获得输入的内容:
<?php
foreach ($_POST["rank_item"] as $k => $v):
$User->setRank($v, $User->getId($_POST["nick"]));
endforeach;
?>
例如,如果我取消选中某些默认选中的项目,它们仍会计为已选中。
编辑:checkRank方法:
public function checkRank($rid, $id) {
$query = parent::query("SELECT * FROM ranks_rel WHERE id_rank = :r AND id_user_admin = :i");
$query = parent::bind(":r", $rid);
$query = parent::bind(":i", $id);
$query = parent::run("rowcount");
return $query;
}
干杯。