用户
 找回密码
 入住 CI 中国社区
搜索
12
返回列表 发新帖
楼主: rkexy
收起左侧

[视图] 为什么我的load->view不加载页面,而是把页面内容加载到了浏览器的preview里?

[复制链接]
发表于 2018-6-25 16:18:13 | 显示全部楼层
老铁.
你这个是 ajax...ajax并不是这么用的.你要取的是 json的数据.然后再转跳到这个 view 所在的控制器里啊.

 楼主| 发表于 2018-6-25 19:20:04 | 显示全部楼层
本帖最后由 rkexy 于 2018-6-25 19:23 编辑
Hex 发表于 2018-6-22 20:05
目前还不太清楚你要做什么,建议说一下你的需求,然后给你一个合理的解决方案。问题都是可以解决的。 ...

嗯……我就是将View中的HTML和JS分开来写了。显示用xxx.php(其实里面全是HTML代码);处理显示(比如多语言,动态生成等等)使用了JS文件,然后在HTML中引用JS。

现在,出现了这样的情况:我在JS中通过AJAX向PHP后台请求显示页面,也就是后台PHP调用$this->load->view(xxxx/xxxx);
正常来说,新页面在此时已经跳转了。但是现在出现的情况是,没有跳转,而是将需要显示的网页代码全部通过AJAX的response返回了.
我以前没做过WEB,所以有些概念对我来说很陌生,导致现在总是踩坑。
 楼主| 发表于 2018-6-25 19:21:16 | 显示全部楼层
飘扬过海 发表于 2018-6-25 14:25
不太明白为啥要在新页面跳转??

我想在有些情况下在当前标签页刷新显示,而有些情况需要在新标签页显示。
发表于 2018-6-26 14:01:49 | 显示全部楼层
rkexy 发表于 2018-6-25 19:20
嗯……我就是将View中的HTML和JS分开来写了。显示用xxx.php(其实里面全是HTML代码);处理显示(比如多语 ...

不是太理解你的需求,你是想 ajax 取的 HTML 在新页面显示?
 楼主| 发表于 2018-6-26 17:45:17 | 显示全部楼层
Hex 发表于 2018-6-26 14:01
不是太理解你的需求,你是想 ajax 取的 HTML 在新页面显示?

本意很简单……就想在JS中调用后端PHP的index函数,index函数中包括load->view函数,来达到跳转的目的。

发表于 2018-6-27 08:41:24 | 显示全部楼层
rkexy 发表于 2018-6-26 17:45
本意很简单……就想在JS中调用后端PHP的index函数,index函数中包括load->view函数,来达到跳转的目的。
...

你想要php跳转,请使用
PHP复制代码
复制代码


想要ajax后跳转,请在ajax的success里使用location.href跳转
JS复制代码
$.ajax({
    url:'xxxxx',
    dataType:'json',
    …
    success:function(ret){
        location.href='http://xxxxxx';
    }
});
复制代码
发表于 2018-6-27 11:04:25 | 显示全部楼层
rkexy 发表于 2018-6-26 17:45
本意很简单……就想在JS中调用后端PHP的index函数,index函数中包括load->view函数,来达到跳转的目的。
...

楼上说的没错,先别管PHP,先确定你的JS是不是 ajax 请求?如果是 ajax 请求,就不能直接 load->view() 因为你可能需要返回一个 JSON 而不是 HTML;ajax 请求后要根据拿到的 JSON 再去执行 JS 代码 window.location 。这和普通 PHP 程序是没有区别的,建议想一下你以前写 PHP 的时候是怎么处理的,跟那个是没有任何区别的。

本版积分规则