如何在view裏面調用另一個view的controller文件
本帖最后由 飛天雞 于 2012-3-9 16:48 编辑本人CI 新手現正在 用CI 重新改裝我的一個 項目。 在一個主頁文件裏面想載入topfoot等等文件。主頁index的controller為:indexcontroller.php對應的 view 為index.php
現在有top foot等側邊欄文件 要引入 ,他們的controller為side.php 對應的view為 top.php、foot.php。
要把 top foot側邊欄放在主頁文件裏面一起出現。
如果在view的 index.php 文件內用 require 直接引入top文件的話,只會執行到view 沒有從controller找到對應的數據。
如果是 用redirect()的話就會 直接跳轉到對應的頁面
如果是用
<?php
Indexcontroller extends CI_controller{
function index(){
$this->load->view('top');
$this->load->view('foot');
$this->load->view('personal_left');
$this->load->view(index);
}
}
?>
只會顯示到index.php 這個view文件 其他的 view都沒有引入成功.
所以總的來說
引入成功但沒有執行相應的controller.一個view文件沒有能執行到 另一個view 文件的controller。 我想應該是要用jq的
ajax的方法來解決這個問題的 但是不知道怎麼把整個頁面都更新到。我可以拿到 整個頁面的數據回來 但不會從先貼
到相應的位置。
請各位高手指導,謝謝
你可以先只 top
看看会出来不
如果分别 top foot personal_left 都分别可以出来的话
应该就是 index 的问题了
我明白lz 的意思,我也想要到一个好的答案。 我知道2个方法可以处理
frameset
第二个就是把你top 和left左边的数据放配置文件里面默认加载 view就有值了 top 等是可以分別出來的但導入到 Index裏面就出現問題了。 不可以一起,否則會出現如文中的情況。
默認加載的方法不好。 因為有些頁面需要 有些頁面不需要。 放在config裏面 可以暫時解決 但其他頁面再遇到的時候 又要再用config. 問題已經解決和大家分享一下
分2步 1 ajax請求 在Index.phpview文件裏面寫入 如下代碼:
<script>
function a(){
$.ajax({
url: 'side/personal_left', //接收页面
type: 'POST', //POST方式发送数据
async: true, //ajax同步
success: function(msg) {
//alert(msg);
$("#loginpage").append(msg);
}
});
}
a();
</script>
2新建一個div裝載 此AJAX返回的頁面div命名為<div id="loginpage" class="loginpage">
這樣就可以方便地更新其他controller的內容到你想要的頁面。怎麼更新都可以 ,如果要替換當前頁面可以用 $("#loginpage").html(msg); 替代 ~~你这方法还没用frameset 个好 我一般是这样写的<?php $this->load->view('admin/public/head.html')?> 這樣寫的話 只會顯示到 3個邊頁。沒有實現嵌套在 INDEX裏面。後來我朋友告訴我 如果同時寫多個
$this->load->view('');的話 是順序執行的。如果執行到有/html結尾的文件 就結束了。沒有再加載下面的文件
页:
[1]