我在下面的代码中需要帮助。我使用codeigniter作为我的开发框架
查看
<table>
<tr>
<th>ID</th>
<th>Username</th>
<th>Email Address</th>
<th>Actions</th>
</tr>
<?php foreach($query as $row){?>
<tr>
<td><?php print $row->id; ?></td>
<td><?php print $row->username; ?></td>
<td><?php print $row->email; ?></td>
<td><?=anchor('userslist/get_Admin/'.$row->id, 'Edit');?> | <?=anchor('userslist/deleteAdmin/'.$row->id, 'Delete');?></td>
</tr>
<?php }?>
</table>
控制器
function get_Admin($id)
{
$data['query']=$this->usermodel->get_Admin($id);
$this->load->view('admin/users/edit-user-template',$data);
}
查看(更新表格)
<table>
<tr>
<th colspan="2">Update an Admin Account</th>
</tr>
<?php echo form_open('userslist/update_admin'); ?>
<tr>
<td>Username</td>
<td>
<?php
$data = array('name'=>'username', 'id'=>'username', 'class'=>'signup-txtbox', 'value'=>$query['username']);
echo form_input($data);
?>
</td>
</tr>
<tr>
<td>Email</td>
<td>
<?php
$data = array('name'=>'email', 'id'=>'email', 'class'=>'signup-txtbox', 'value'=>$query['email']);
echo form_input($data);
?>
</td>
</tr>
<tr>
<td>Password</td>
<td>
<?php
$data = array('name'=>'password', 'id'=>'password', 'class'=>'signup-txtbox', 'value'=>'');
echo form_input($data);
?>
</td>
</tr>
<tr>
<td>Confirm Password</td>
<td>
<?php
$data = array('name'=>'password2', 'id'=>'password2', 'class'=>'signup-txtbox', 'value'=>'');
echo form_input($data);
?>
</td>
</tr>
<tr>
<tr>
<td> </td>
<td>
<?php
$data = array('name'=>'submit', 'id'=>'submit', 'class'=>'signup-btn', 'value'=>'Update Acccount');
echo form_submit($data);
?>
</td>
</tr>
<tr>
<td colspan="2"><?php echo validation_errors('<p class="error">'); ?></td>
</tr>
</table>
控制器
function update_admin()
{
$this->usermodel->update_admin();
redirect('userslist');
}
模型
function update_admin()
{
$update_admin_data = array(
'username' => $this->input->post('username'),
'email' => $this->input->post('email'),
'password ' => md5($this->input->post('password '))
);
$this->db->where('id',$id);
$update = $this->db->update('users', $update_admin_data);
return $update;
}
整个代码不会更新选定的记录,它只是在没有更新的情况下重定向到页面。可能的解决方案是什么?
谢谢!
答案 0 :(得分:2)
您缺少$id
属性。在第二个视图中更新表单提交:
<?php echo form_open('userslist/update_admin/'.$query['id']); ?>
修复第二个控制器:
function update_admin($id)
{
$this->usermodel->update_admin($id);
redirect('userslist');
}
最后,修复您的update_admin
模型函数,以便像这样开始:
function update_admin($id)
{
答案 1 :(得分:0)
我相信这是你的问题所在
$this->db->where('id',$id);
变量$id
未在您的模型函数中定义,因此当您尝试执行时$this->db->where('id',$id);
$ id不是变量,因此无法找到任何内容......因此无法更新。
如果$id
是uri的一部分,请执行以下操作:
$id = $this->uri->segment(3) //or whatever the segment is going to be