2013-03-04 87 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