使用 ajax 和 url 控件的 Codeigniter 加载视图
Codeigniter load views with ajax and url control
我在 ajax 加载部分视图时遇到了一些问题。我使用了这个模式:
config/constants.php
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
然后ajax需要加载的每个控制器函数包含:
if(IS_AJAX){
//action when AJAX request
$this->load->view("partial_view", $data);
}else{
//action when user open page directly in browser
$this->load->view('full_view',$data);
}
例如当我在主页 (http://example.com
) 并且我想使用示例控制器和编辑操作时。
现在,如果 IS_AJAX 为真,我的内容会正确加载,但浏览器中的 url 仍然是相同的 http://example.com
。
else 如果IS_AJAX 为假则没有问题。我有 url http://example.com/example/edit/params
如何为 AJAX 请求更改 url 以使其看起来像标准 CI url?
P.S 如果不需要,我不想使用哈希:/
提前致谢。
对不起..
您可以使用它来更改 URL 而无需加载页面:
history.pushState({},null,'http://example-new-url.com');
我在 ajax 加载部分视图时遇到了一些问题。我使用了这个模式:
config/constants.php
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
然后ajax需要加载的每个控制器函数包含:
if(IS_AJAX){
//action when AJAX request
$this->load->view("partial_view", $data);
}else{
//action when user open page directly in browser
$this->load->view('full_view',$data);
}
例如当我在主页 (http://example.com
) 并且我想使用示例控制器和编辑操作时。
现在,如果 IS_AJAX 为真,我的内容会正确加载,但浏览器中的 url 仍然是相同的 http://example.com
。
else 如果IS_AJAX 为假则没有问题。我有 url http://example.com/example/edit/params
如何为 AJAX 请求更改 url 以使其看起来像标准 CI url?
P.S 如果不需要,我不想使用哈希:/
提前致谢。
对不起.. 您可以使用它来更改 URL 而无需加载页面:
history.pushState({},null,'http://example-new-url.com');