2013-03-04 38 views
0

您好我想做一個簡單的驗證表單,但出於某種原因,它不工作我試圖休閒codeigniter用戶指南,但它不適用於我出於某種原因,我只是一個初學者。有人可以看看我的代碼,並幫助我解決問題。我所得到的是一個錯誤信息頁面未找到,並且表單本身無法驗證。當我短聲提交按鈕它去這個網址HTTP://localhost/Surva/index.php/info/validation試圖驗證形式使用codeigniter

控制器

<?php 

class Info extends CI_Controller{ 

public function index(){ 
$this->load->view('info_view'); 


$data ['name'] =  $this->input->post('name'); 
$data ['second_name'] = $this->input->post('second_name'); 
$data ['phone'] =  $this->input->post('phone'); 
$data ['email'] =  $this->input->post('email'); 

if($this->input->post('submit')){ 

    $this->form_validation->set_rules('name', 'Name', 'required|alpha|xss_clean'); 
    $this->form_validation->set_rules('second_name', 'Second Name', 'required|alpha|xss_clean'); 
    $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); 

    if ($this->form_validation->run()){ 

     $this->info_model->add_record($data); 

    } 
} 
    $this->load->view('survay_view'); 
} 




} 


?> 

視圖

<html> 
    <head> 
    </head> 
<body> 

    <?php 
    echo validation_errors(); 
    echo form_open('info/validation'); ?> 
    <ul id="info"> 

     <li><label for='name'>Name:</lable><?php echo form_input('name')?></li> 


     <li><label for='second_name'>Second Name:</lable> <?php echo form_input('second_name');?> </li> 


     <li><label fro='phpne'>Phone:</lable> <?php echo form_input('phone');?></li> 


     <li><label for='email'>Email:</lable><?php echo form_input('email');?></li> 

     <li><?php echo form_submit('submit', 'Start survay!!');?></li> 
    </ul> 

<?php echo form_close();?> 
    </body> 
</html> 

模式

<?php 

class Info_model extends CI_Model { 

    function get_records() 
      { 
      $query = $this->db->get('credentials'); 

      return $query->result(); 
      } 


    function add_record($data) 
      { 
      $this->db->insert('credentials', $data); 
      return; 
     } 


} 

?> 
+0

你加載了form_validation庫嗎? – 2013-03-04 07:30:36

+0

其自動加載 – 2013-03-04 07:33:41

+0

什麼不適合你?你是否收到任何錯誤或其驗證字段? – 2013-03-04 07:39:31

回答

3
echo form_open('info/validation'); 

你的表格要求進入所謂的 「信息」 的控制器,以及一個名爲 「驗證」 功能。

您的控制器沒有該功能。

嘗試將其更改爲:

echo form_open('info'); 

,因爲你正在做驗證您的索引功能。

+0

這是我調用驗證函數的問題,我不得不調用validation_info函數tnx爲你提供幫助 – 2013-03-04 07:53:22

0

在你的控制器中加載form_validation庫,你忘了加載它。

public function index(){ 
$this->load->view('info_view'); 
$this->load->library('form_validation'); // load library. 
............... 

} 

變化

echo form_open('info/validation'); 

echo form_open('info/'); 
+0

庫自動加載。 – 2013-03-04 07:35:20

+0

從哪裏通過構造函數加載? – 2013-03-04 07:36:25

+0

它加載在config/autoload中。 – 2013-03-04 07:37:31