0

我有一个简单的问题,我有一个表单,用户可以在其中输入他的详细信息,当点击提交按钮并将他的详细信息提交到数据库时,它会将用户带到另一个页面,我正在使用 codeigniter,我对此很陌生怎么做?tnx 为您提供帮助。这是我的cmv:

控制器

    <?php

class Info extends CI_Controller{

    function index(){

        $this->load->view('info_view');
    }
    // insert data
    function credentials()
    {   
     $data = array(
         'name' => $this->input->post('name'),
         'second_name' => $this->input->post('second_name'),
         'phone' => $this->input->post('phone'),
         'email' => $this->input->post('email'),  
         );


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


    }



 }

?>

模型

<?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;
       }


}

?>

看法

<html>
    <head>
    </head> 
 <body>
   <?php echo form_open('info/credentials'); ?>
     <ul id="info">  
       <li>Name:<?php echo form_input('name')?></li>
       <li>Second Name: <?php echo form_input('second_name');?></li>
       <li>Phone: <?php echo form_input('phone');?></li>
       <li>Email: <?php echo form_input('email');?></li>
       <li><?php echo form_submit('submit', 'Start survay!!' );?></li>
     </ul>  

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

3 回答 3

2

如果您只需要在提交表单时进行简单的重定向:

$this->info_model->add_record($data);
redirect('controller/method');
于 2013-02-28T10:07:53.217 回答
0

您可以使用 URL Helper 中的 redirect() 函数来实际重定向用户
http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

像这样:

$this->load->helper('url');
redirect('/some/other/page');

请注意,必须在将任何数据输出到浏览器之前调用它。

另一种方法是简单地根据上下文加载两个不同的视图。通常您还需要一些表单验证,以便您可以使用它来指导用户。我通常在我的函数中得到类似这样的东西,它既用于发布数据,也用于将其插入数据库和“重定向”:

$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Name', 'required|trim|xss_clean');
/* More validation */

if ($this->form_validation->run() !== FALSE) {
    $data = array(
     'name' => $this->input->post('name'),
     'second_name' => $this->input->post('second_name'),
     'phone' => $this->input->post('phone'),
     'email' => $this->input->post('email'),  
     );
    $this->info_model->add_record($data);

    $this->load->view('some_other_view');
} else {
    $this->load->view('info_view');
}
于 2013-02-28T10:22:31.283 回答
0

您还可以使用 refresh 作为第二个参数:

$this->info_model->add_record($data);
redirect('controllerName/methodName','refresh');
于 2013-02-28T11:23:26.557 回答