1

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

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

有谁知道为什么会这样?

编辑:

我从这个链接中找到了关于 CI 观点和重定向的解释。

views -> 在前一页的 URL 中显示一个页面

重定向 -> 在其自己的 URL 中显示页面

4

2 回答 2

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

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

于 2013-01-28T11:54:57.540 回答
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;
      }

    }
}

或者

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

你可以试试这样的东西, 这未经测试告诉我是否有错误

于 2013-01-28T10:55:07.603 回答