您好我刚开始CodeIgniter
。我在加载视图时遇到问题。
我的观点是我正在创建一个示例添加表单。提交后,它将转到控制器并在数据库中插入条目。我想如果数据库操作成功,它再次来到同一视图再次有一些值。在这些值的基础上,我将显示一些特定的行,通知用户有关插入操作的信息。我在控制器中的功能看起来像
public function add_user()
{
$this->load->view('add_user');
$post=$this->input->post();
if(isset($post['name']))
{
$data=array(
'name'=>$post['name'],
'designation'=>$post['designation']
);
if($this->db->insert('user',$data))
$result['update']=true;
else
$result['update']=false;
$this->load->view('add_user',$result);
}
}
我的观点看起来像
<h1 align="center">Add User</h1>
<table border="0" cellpadding="2" cellspacing="2" align="center">
<?php
if(isset($update))
{
if($update)
{
?>
<tr bgcolor="#00FF00">
<td>Record Added Successfully</td>
</tr>
<?php
}
else
{
?>
<tr bgcolor="#FF0000">
<td>Insertion Operation Failed</td>
</tr>
<?php
}
}
?>
<?php echo(form_open('first/add_user'));?>
<tr>
<td>Name</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td>Designation</td>
<td>
<select name="designation">
<option value="Junior PHP Developer">Junior PHP Developer</option>
<option value="Senior PHP Developer">Senior PHP Developer</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Add User" />
</td>
</tr>
</form>
</table>
现在我想要的是,如果插入操作成功,我发送真值来查看,如果不是,我发送假值。在此值的基础上,我显示了一些行。根据我理解的逻辑,我正在加载视图两次。因为它第一次加载表单而第二次加载视图时带有一些true或false值。但是在重新加载之后会发生什么,有两种形式。我知道这个问题是由于我的观点加倍加载。我想询问在数据库操作之后是否还有另一种方法可以查看值?
答案 0 :(得分:2)
只需加载您的观点一次:
public function add_user()
{
$post=$this->input->post();
$result = array();
if(isset($post['name']))
{
$data=array(
'name'=>$post['name'],
'designation'=>$post['designation']
);
if($this->db->insert('user',$data))
$result['update']=true;
else
$result['update']=false;
}
$this->load->view('add_user',$result);
}
顺便说一句,你的代码有点乱,请继续处理
答案 1 :(得分:0)
// try something like this
//you may need to use form validation helper
//load add user form
public function add_user(){
//any data required for the form
$data['anything'] = '';
$this->load->view('add_user',$data);
}
//to process adding user action, form action will point to this
function adding_user(){
if($this->input->post('name')){
$data=array(
'name'=>$post['name'],
'designation'=>$post['designation'];
if($this->db->insert('user',$data)){
echo 'user added successfully!';
}else{
redirect(user/add_user);
}
);
}
}