【发布时间】:2026-02-14 18:45:01
【问题描述】:
我有一个表,其中每行有 3 列:名称、启用、禁用。启用和禁用列有一个复选框,正如名称所述,我试图每行只勾选一个复选框。到目前为止,这些是我的代码(对于每一行和两列):
<?php foreach($customers as $customer):?>
<tr>
<td align="center"><?php echo $customer;?></td>
<?php
$check = FALSE;
if($user_customer != FALSE)
foreach($user_customer as $object)
foreach($object as $current_customer)
if($current_customer == $customer)
$check = TRUE;
?>
<td align='center'>
<?php
if($check == FALSE)
$data = array('name' => 'enable[]', 'value' => $customer, 'checked' => FALSE);
else
$data = array('name' => 'enable[]', 'value' => $customer, 'checked' => TRUE);
echo form_checkbox($data);
?>
</td>
<td align='center'>
<?php
if($check == TRUE)
$data = array('name' => 'disable[]', 'value' => $customer, 'checked' => FALSE);
else
$data = array('name' => 'disable[]', 'value' => $customer, 'checked' => TRUE);
echo form_checkbox($data);
?>
</td>
</tr>
<?php endforeach?>
在我提交表单后,它会将值相应地存储到数据库中,但是我不希望用户能够同时勾选两个复选框。我尝试使用单选按钮,但这限制为每列一个检查。我正在尝试按行制作,有什么帮助吗?
附:我不喜欢使用任何 Javascript。
编辑,我为每一行添加了一个计数器,所以第一行将是 radio_1 等,这是我编辑的部分:
<td align='center'>
<?php
if($check == FALSE)
$data = array('name' => "radio_$counter", 'value' => $customer, 'checked' => FALSE);
else
$data = array('name' => "radio_$counter", 'value' => $customer, 'checked' => TRUE);
echo form_radio($data);
?>
</td>
<td align='center'>
<?php
if($check == TRUE)
$data = array('name' => "radio_$counter", 'value' => $customer, 'checked' => FALSE);
else
$data = array('name' => "radio_$counter", 'value' => $customer, 'checked' => TRUE);
echo form_radio($data);
?>
</td>
编辑 2,这就是我过去在控制器函数中检索它的方式:
// These were the arrays that I assigned to each checkbox according to the column
$enable = $this->input->post('enable');
$disable = $this->input->post('disable');
// I used it for inserting and deleting values
$insert = $this->home_model->insert_customer(array('user_id'=>$user_id, 'customer'=>$enable));
$delete = $this->home_model->delete_customer($user_id, $disable);
【问题讨论】:
-
你应该只使用单选按钮并在每一行中更改它们的名称。可能会使用一些计数器或数据库 ID。
-
@NiranjanNRaju 我应该把名字改成什么?我使用了两个复选框,因为如果我使用一个复选框,我还想获得取消选中的值,如果可能的话。
-
第一行的单选按钮名称 = >radio_1,第二行,radio_2...等
-
如果需要,我会编辑/回答这个问题。
-
@NiranjanNRaju 我已经编辑了它,是的,请这样做。现在我被困在提交表单时如何检索所有值。如您所见,之前我使用数组作为名称。
标签: php codeigniter checkbox html-table