我注意到当使用$this->load->view('page.php)'
时,浏览器中的URL不会改变,即。如果我们来自../step_1.php
并加载到../step_2.php
,则网址仍为../step_1.php
。
我正在制作一个多步骤表单,其中所有步骤都由一个控制器处理,我已经了解到处理这种情况的最佳方法是使用load
。问题是我不希望显示过去页面的URL,而是显示新页面的URL。我知道redirect('page_controller')
可以达到这个目的但是不切实际(在控制器内重定向)。
有谁知道为什么会这样?
编辑:
我找到了关于CI视图和this link重定向的解释。
观看次数 - >显示上一页网址中的页面
重定向 - >在自己的网址中显示一个页面
答案 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
你可以尝试这样的事,
未经测试告诉我是否有错误