在我的网站上,用户可以创建团队(部落)并邀请其他用户加入他们。
我正在开展一个页面,团队领导可以编辑团队中每个用户的“排名”。这些选项包括Founder,Captain,Member,Inactive和Kick(这将完全取消团队中的用户)。
我已经包含了一个快速截图,说明了该页面如何帮助解释我希望实现的目标。
因此,团队领导可以通过并更改每个用户的排名,然后点击更新。
最好的方法是什么?
以下是我目前代码中的一些摘录:
控制器:
if ($this->input->post('update_roster'))
{
$member_id = $this->input->post('user_id');
$member_rank = $this->input->post('member_rank');
$this->clan_model->update_roster($clan_id, $member_id, $member_rank);
}
MODEL:
public function update_roster($clan_id, $user_id, $rank)
{
$data = array(
'rank' => $rank
);
$this->db->where('clan_id', $clan_id);
$this->db->where('user_id', $user_id);
if ($this->db->update('clan_joined', $data))
{
return TRUE;
}
}
查看:
<h3>Roster</h3>
<?php
$member_rank = array(
'1' => 'Founder',
'2' => 'Captain',
'3' => 'Member',
'4' => 'Inactive',
'5' => 'Kick'
);
?>
<?php $attributes = array('id' => 'update_roster', 'class' => 'nice'); ?>
<?php echo form_open('clan/manage/' . $this->uri->segment(3) . '#roster', $attributes); ?>
<table width="100%">
<thead>
<tr>
<th class="text-center">#</th>
<th>Username</th>
<th>Rank</th>
</tr>
</thead>
<?php form_open('clan/manage/' . $this->uri->segment(3) . '#roster', $attributes); ?>
<?php foreach ($members AS $member) : ?>
<tr>
<td class="text-center"><a href="<?php echo site_url('people') . '/' . $member->username; ?>"><?php echo avatar(32, $member->username, $member->avatar_uploaded); ?></a></td>
<td><?php echo $info->clan_tag; ?> / <?php echo $member->username; ?></td>
<td><?php echo form_dropdown('member_rank', $member_rank, $member->rank); ?></td>
</tr>
<?php echo form_hidden('user_id', $member->username); ?>
<?php endforeach; ?>
</table>
<?php echo form_submit('update_roster', 'Update'); ?>
<?php echo form_close(); ?>
我理解这段代码是错的,因为它不起作用,但我想我会分享到目前为止所做的一切。
答案 0 :(得分:0)
在HTML表单上,将下拉列表和隐藏的输入更改为数组:
<td><?php echo form_dropdown('member_rank[]', $member_rank, $member->rank); ?></td>
和
<?php echo form_hidden('user_id[]', $member->username); ?>
然后$ this-&gt; input-&gt; post('member_rank')和'user_id'将分别接收一个数组。您可以在PHP中循环遍历数组,并为循环的每次迭代调用UPDATE代码:
for ($i = 0; $i < count($member_id); $i++) {
$current_member_id = $member_id[$i];
$current_member_rank = $member_rank[$i];
// Call your update code.
}