gpt4 book ai didi

php - 使用 Codeigniter 将多个复选框从表发布到数据库

转载 作者:行者123 更新时间:2023-11-29 04:06:01 29 4
gpt4 key购买 nike

我在将我的复选框发布到数据库时遇到了问题。请帮助我...

这是我的观点:

<table>
<tr>
<td>
<input type='hidden' name='userid[]' value='1'>
<input type='text' name='username[]' value='username1'>
</td>
<td>
<input type='checkbox' name='as_admin[]' value=1>
</td>
</tr>
<tr>
<td>
<input type='hidden' name='userid[]' value='2'>
<input type='text' name='username[]' value='username2'>
</td>
<td>
<input type='checkbox' name='as_admin[]' value=1>
</td>
</tr>
</table>

这是我的 Controller :

$this->Model_user->insert_user();

这是我的模型:

function insert_user(){
$user_count = count($this->input->post('userid'));
$userid = $this->input->post('userid');
$username = $this->input->post('username');
$as_admin = $this->input->post('as_admin');

for ($i=0; $i < $user_count; $i++){
$info_user = array(
'user_id' => $userid[$i],
'user_name' => $username[$i],
'as_admin' => $as_admin[$i],
);
$this->db->insert($info_user);
}
}

问题是当 'username2' 标记为管理员时(选中第二行复选框),在数据库中将是这样的:

|user_id|user_name|as_admin|
| 1 |username1| 1 |
| 2 |username2| 0 |

应该是这样的:

|user_id|user_name|as_admin|
| 1 |username1| 0 |
| 2 |username2| 1 |

现在有人知道如何保存那些东西吗,拜托...

提前致谢...

最佳答案

试试这个,在你看来,使用用户 id 作为 as_admin 的键

<table>
<tr>
<td>
<input type='hidden' name='userid[]' value='1'>
<input type='text' name='username[]' value='username1'>
</td>
<td>
<input type='checkbox' name='as_admin[1]' value=1>
</td>
</tr>
<tr>
<td>
<input type='hidden' name='userid[]' value='2'>
<input type='text' name='username[]' value='username2'>
</td>
<td>
<input type='checkbox' name='as_admin[2]' value=1>
</td>
</tr>
</table>

在你的模型中

function insert_user(){
$user_count = count($this->input->post('userid'));
$userid = $this->input->post('userid');
$username = $this->input->post('username');
$as_admin = $this->input->post('as_admin');

for ($i=0; $i < $user_count; $i++){
$info_user = array(
'user_id' => $userid[$i],
'user_name' => $username[$i],
'as_admin' => isset($as_admin[$userid[$i]]) ? 1 : 0,
);
$this->db->insert($info_user);
}
}

你遇到这个问题是因为,如果你只选中 1 个复选框,只会传递选中的值,所以如果你计算 $as_admin,你将只得到 2 个 as_admin 中的 1 个。

如果你只将admin设为username2

那么您的帖子将如下所示

Array
(
[userid] => Array
(
[0] => 1
[1] => 2
)

[username] => Array
(
[0] => username1
[1] => username2
)

[as_admin] => Array
(
[2] => 1
)
)

关于php - 使用 Codeigniter 将多个复选框从表发布到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192882/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com