【问题标题】:codeigniter get value from formcodeigniter 从表单中获取价值
【发布时间】:2010-12-30 09:40:53
【问题描述】:

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

  1. 我该如何解决这个问题?
  2. 如果我想将此值传递给会话,我该怎么做?

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

}

}
?>

感谢您的帮助。

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    如果你也在使用 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);
    

    【讨论】:

    • 我已经像 tihs 一样替换了: Test Example View

      Test Sample CI Framwork 'username','value' => $this->input->post('username'));回声表单输入($数据); ?>
      'submit'), 'Submit!');?>

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

      我已经复制并粘贴了您的代码,并且对我来说似乎一切正常 - 我有点不清楚您在“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->session->userdata('item') 来检索数据,因此对于您的代码

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-22
        • 1970-01-01
        相关资源
        最近更新 更多