在两个函数/视图之间传递参数

时间:2012-02-07 11:20:18

标签: codeigniter

我在控制器中有两个函数,名为step1和step2。我想在主题之间传递$ data数组。以下是控制器代码。在步骤1中,我在步骤2中输入了一个简单的回声,它显示了$ data ['text1']的值。这个值在step2控制器中显示为NULL,没有我在step1中键入的值。     

    public $data = array(
        'id' => '',
        'text1' => '',
        'text2' => ''
    );

    public function __construct()
    {
        parent::__construct();
    }

    public function step1()
    {
        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');

        $this->form_validation->set_rules('text1', 'Text 1', 'rquired');
        if($this->form_validation->run() === FALSE)
        {
            $this->load->view('test/step1', $this->data);
        }
        else
        {
            $this->data['text1'] = $this->input->post('text1');
            redirect('test/step2');
        }
    }

    public function step2()
    {
        $this->load->view('test/step2', $this->data);

    }

    public function step3()
    {

    }
}

1 个答案:

答案 0 :(得分:1)

您正在通过重定向('test / step2')重定向到第2步; 这基本上会重新加载页面并且您的$ data属性会被清空。

相反,你应该尝试类似的东西:

$this->data['text1'] = $this->input->post('text1');
$this->step2(); //would call your existing step2() method

如果您确实希望将标题重定向到像test / step2这样的网址,则可能需要将$数据存储在会话中。