加载页面并更改URL

时间:2013-01-28 10:42:14

标签: php codeigniter

我注意到当使用$this->load->view('page.php)'时,浏览器中的URL不会改变,即。如果我们来自../step_1.php并加载到../step_2.php,则网址仍为../step_1.php

我正在制作一个多步骤表单,其中所有步骤都由一个控制器处理,我已经了解到处理这种情况的最佳方法是使用load。问题是我不希望显示过去页面的URL,而是显示新页面的URL。我知道redirect('page_controller')可以达到这个目的但是不切实际(在控制器内重定向)。

有谁知道为什么会这样?

编辑:

我找到了关于CI视图和this link重定向的解释。

  

观看次数 - >显示上一页网址中的页面

     

重定向 - >在自己的网址中显示一个页面

2 个答案:

答案 0 :(得分:1)

function step_1()
{
    load_page($step_1);
}

不是从视图中调用load_page,而是如上所述在控制器中构建页面,然后调用相应的页面。 CI使用控制器方法作为URL。据我所知,没有办法改变这种行为。

答案 1 :(得分:0)

class test{
{
    public function view()
    {

      switch($this->uri->segment(2))
      {
      case $this->uri->segment(2) == 'part1':
        $this->load->view('part1');
      break;
      case $this->uri->segment(2) == 'part2':
          $this->load->view('part2');
      break;
      }

    }
}

OR

class test{
{
    public function view($page)
    {

      switch($page)
      {
      case $page == 'part1':
        $this->load->view('part1');
      break;
      case $page == 'part2':
          $this->load->view('part2');
      break;
      }

    }
}




test/view/part1
will go to view part1
test/view/part2
will go to view part2
你可以尝试这样的事, 未经测试告诉我是否有错误