Codeigniter中的页面重定向

时间:2014-03-01 04:39:34

标签: php codeigniter

我是Codeigniter的新手。作为研究它的一部分,我创建了一个将数据插入数据库的表单。插入后,它没有正确地重定向到表单视图页面(formvalidation.php)。

表单操作

    public function submitform()
    {
        $formdata['username']=$this->input->post('username');
        $formdata['address']=$this->input->post('address');
        $formdata['state']=$this->input->post('state');
        $formdata['country']=$this->input->post('country');
        $data['state']=$this->getstatearray();
        $data['country']=$this->getcountries();
        if($this->userprofile_model->setdata($formdata)=='success')
        {
            $this->load->view('formvalidation/formvalidation',$data);
        }
        else
        {
            $this->load->view('formvalidation/formvalidation',$data);
        }
    }

表单视图页面(formvalidation.php)

echo form_open('formvalidation/submitform'); 
echo form_input('username');
echo "<br>".form_textarea("address");
echo "<br>".form_dropdown('state',$state);
echo "<br>";
echo form_dropdown('country',$country);
echo "<br><br>".form_submit('submit','Submit');
echo form_close();

模型(userprofile_model.php)

class userprofile_model extends CI_Model {

    public function __construct()
    {
        $this->load->database();
    }

    public function setdata($data)
    {
        $this->db->insert('userprofile',$data);  
        if($this->db->affected_rows()>0)
        {
            echo "success";
        }
        else 
        {
            echo "fail";
        }
    }
}

现在该值已插入数据库。但插入后我想将其重定向到网址http://www.example.com/codeigniter/index.php/formvalidation/。但相反,它现在重定向到http://www.example.com/codeigniter/index.php/formvalidation/submitform,其中 submitform 是表单操作方法。

我该如何解决这个问题?我尝试在页面重定向功能之后放置exit;。但它不会起作用。请帮我解决这个问题。

提前致谢。

4 个答案:

答案 0 :(得分:2)

是的,因为没有重定向代码。提交表单后,将执行submitform函数,并在该函数中加载视图。所以如果你想重定向 要做其他事情,你必须使用redirect()函数。

public function submitform()
    {
        $formdata['username']=$this->input->post('username');
        $formdata['address']=$this->input->post('address');
        $formdata['state']=$this->input->post('state');
        $formdata['country']=$this->input->post('country');
        $data['state']=$this->getstatearray();
        $data['country']=$this->getcountries();
        if($this->userprofile_model->setdata($formdata)=='success'){
                 redirect("Your URL");
        }
        else{
                redirect("Your URL");
        }
    }

此外,您必须正确清理用户输入。您必须先验证表单输入,然后再将其传递给模型。您可以找到更多信息here

答案 1 :(得分:1)

首先在控制器索引功能中加载视图页面。

function index()
{
$this->load->view('v_bank_master');
}

然后在模型页面中,插入完成后。给出以下代码。

redirect('give your controller page name here','refresh');

现在,您的页面会在插入后重定向到视图页面。

希望它能帮到你......

答案 2 :(得分:0)

我使用redirect('yourControllerName','refresh')。

在此处阅读更多内容:Redirect()

答案 3 :(得分:0)

插入后输入以下代码

redirect('controller_name/function_name');