2012-12-04 55 views
0

我目前正在设置页面,用户在注册后重定向到/ 设置页面基本上使用户填写重要信息,并有3个步骤。我不想创建3页,一步= 1页,因为我认为这不是有效的方法。在一个页面中有多个“部分/步骤” - 注册多个SETUP步骤后只有一个页面

我曾尝试创建一个新的Facebook帐户,并意识到他们可以在一个页面中完成所有操作,与其他网站一样。

我注意到的一件事是地址栏有查询字符串,我目前正在使用codeigniter/MVC,PHP。我该如何做“查询字符串(地址/?步骤= 1)等”的方式,使其只改变表单的css ACTIVE代码和tab。

或者还有其他方法可以完成这项工作吗?

谢谢!

回答

2

如何为3个步骤创建3个视图并通过您的控制器通过ajax加载它们。

您可以在第一步中拥有主视图,并随着用户进度追加视图2和视图3。

的Javascript在厂景:

$("#next_button").click(function() {  
    $.ajax({ 
     url: "<?=base_url()?>controller/next_step", 
     type:'POST', 
     data: "step=1", 
     async: false, 
     success: function(data) { 
      $("#step_form").append(data); 
     }, 
     fail: function(jqXHR, textStatus) { 
      console.log("Request failed: " + textStatus); 
     } 
    }); 
}); 

控制器

public function next_step() { 
    $step = filter_input(INPUT_POST, "step", FILTER_SANITIZE_NUMBER_INT); 
    if($step==1) { 
     echo $this->load->view("step2_view", array(), true); 
    } 
} 

虽然你正在创建3次,用户认为其一页。

+0

我也可以很容易地修改它到标签上,这样当人们点击标签时,它会显示LOADING ...并再次出现? – CodeGuru

+1

是的,如果你使用的是jQuery UI选项卡(http://jqueryui.com/tabs/#ajax),这(稍作修改后)可以帮助http://stackoverflow.com/questions/8301193/jquery-ui-tabs - 如何对发送的Ajax请求与 - 数据后 – user1190992