【问题标题】:codeigniter displaying error message on same pagecodeigniter 在同一页面上显示错误消息
【发布时间】:2013-01-22 20:41:29
【问题描述】:

关于codeigniter的另一个问题,这里有一些细节:

查看页面:

<?php if (isset($error)){echo $error; } ?>
<form action="<?php echo site_url('mem_posting/post');>" method="post">  
<input type="text" name="fname">
some fields goes here...
</form>  

控制器页面(mem_posting):

public function post_form()  
{
$this->load->view('header');  
$this->load->view(form_page);
}

public function post()  
{  
    $post_data=array(  
    'mem_id'=>$this->input->post('mem_id'),  
    //other inputs... 
    )
    $this->load->model('member_model');  
    if ($this->member_model->check_member($post_data)===true)  
    {  

   //row exist  
   // **i would like to load the same page but 
   // **with error message "like already exist".  

    }else{  
         $this->member_model->inset_member($post_data);
    }
}  

模型页面:

public function insert_member($post_data=array())  
{  
 extract($post_data);
 $this->db->where('member_id', $member_id);
 $this->db->insert('membership', $post_data); 

}

public function check_member($post_data=array())  
{  
    extract($post_data);
    $this->db->select('mem_id');
    $this->db->where('mem_id', $mem_id);
    $query = $this->db->get('membership'); 

    if ($query->num_rows() > 0){
        return true;            
    }else{
         return false;  
    }
}  

您可以看到视图页面包含表单,现在我想要实现的是回显类似“已经存在”的错误,因此我不必编写另一个 $this->load->view('post_form' ) 在 if 语句中。

提前谢谢你..

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    你的意思是仅仅向视图发送一个变量?

    $data['error'] = "error message";
    $this->load->view('some/view', $data);
    

    【讨论】:

      【解决方案2】:

      好吧!您应该在提交表单时运行验证。因此,假设您提交了 2 个字段。应该是这样的:

      $this->form_validation->set_rules('name', 'Name', 'required|trim|xss_clean');
      $this->form_validation->set_rules('mem_id', 'ID Member', 'required|trim|is_unique[yourtable.mem_id]|xss_clean');
          if ($this->form_validation->run()){
             // Do your cool stuff now because validation passed
          }else{
             // Whatever...validation fails, load your view.
          }
      

      所以在您看来,您应该在表格顶部有这样的东西:

      <?php echo validation_errors(); ?>
      

      is_unique[yourtable.mem_id] 将验证输入在您的数据库中是否唯一。所以如果真的是独一无二的,OK。

      【讨论】:

      • 嗨,约翰,我要验证的是是否存在一行,如果存在一行,我想加载包含表单但带有错误消息的同一页面,
      • 您好!对不起我的英语,不是我的母语,但如果我没有误解你......你提交一个表格,并验证是否没有包含该数据的行,例如避免有 2 行具有相同的用户名(例如) .是这样,我发布的代码会帮助你,is_unique[table.field] 检查一下,如果有一行包含该数据,它将自动显示错误。因此,如果用户提交一个新用户名,它将通过并做任何你想做的事情,但是......如果用户名存在......BOOM!
      猜你喜欢
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      相关资源
      最近更新 更多