codeigniter从表单中获取值

时间:2010-12-30 09:40:54

标签: codeigniter

我是初学者codeigniter。 我的目的是从example_view.php视图的形式获取值,然后在我提交时在result.php视图中显示此结果。

  1. 我该如何纠正这个问题?
  2. 如果我想将此值传递给会话,我该怎么办?
  3. example_view.php(视图)

    <html>
    <head><title>Test Example View</title></head>
    
    <body>
    <h1 align="center">Test Sample CI Framwork</h1>
    
    <?php echo form_open('example/getvalue'); ?>
    <input type="text" name="username" value="" size="50" />
    <div><input type="submit" value="Submit" name="submit"/></div>
    <?php echo form_close(); ?>
    </body>
    </html>
    

    result.php(视图)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <?php echo 'Your new value is '.$value;?>
    </body>
    </html>
    

    使用example.php(控制器)

    <?php
    class Example extends Controller {
    
     function Example()
     {
      parent::Controller(); 
       $this->load->helper('form');
       $this->load->helper('url');
    
     }
    
     function index() {
      $this->load->view('example_view');
      $this->getvalue();
     }
    
     function getvalue()
    {
     if ($this->input->post('submit')==true) {
     $data['value']=$this->input->post('username');
      $this->load->view('result',$data);
     }
    
    }
    
    }
    ?>
    

    感谢您的帮助。

3 个答案:

答案 0 :(得分:9)

如果您也使用form_validation,则可以使用

set_value('test'); // $_POST['test']

否则使用

$this->input->post('test'); // $_POST['test']

在表单中,设置类似的内容;

$data = array('name' => 'field' => 'value' => $this->input->post('test'));
echo form_input($data);

答案 1 :(得分:3)

要从输入中获取codeigniter中的值,您可以使用post

$this->input->post('name');

您还可以从GET方法中获取值

$this->input->get('name');

答案 2 :(得分:0)

我已经复制并粘贴了你的代码,一切似乎对我都很好 - 我有点不清楚你在“1”下的问题。是

对于会话,CodeIgniter指南对此非常有用:http://codeigniter.com/user_guide/libraries/sessions.html

基本上,您需要先使用

加载会话库
$this->load->library('session');

然后您可以使用

设置会话数据
$this->session->set_userdata('some_name','some_value');

所以你的最终功能看起来像这样

function getvalue()
{
 if ($this->input->post('submit')==true) {
 $data['value']=$this->input->post('username');
 $this->session->('username',$data['value']);
 $this->load->view('result',$data);
 }
}

然后,您可以通过调用$ this-&gt; session-&gt; userdata('item')来检索数据,因此对于您的代码

echo $this->session->userdata('username');

应输出放入文本框的内容(但不要忘记先在输入框上运行一些安全检查!)