1

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ステートメント。

前もって感謝します..

4

2 に答える 2

2

ビューに変数を送信するだけですか?

$data['error'] = "error message";
$this->load->view('some/view', $data);
于 2013-01-22T20:48:17.770 に答える
0

良い!フォームが送信されたときに検証を実行する必要があります。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] は、入力が DB で一意であるかどうかを検証します。が本当にユニークな場合は OK です。

于 2013-01-22T23:07:55.670 に答える