用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4324|回复: 7
收起左侧

[已解决] 如何在view裏面調用另一個view的controller文件

[复制链接]
发表于 2012-3-9 10:48:05 | 显示全部楼层 |阅读模式
本帖最后由 飛天雞 于 2012-3-9 16:48 编辑

本人CI 新手  現正在 用CI 重新改裝我的一個 項目。   在一個主頁文件裏面想載入top  foot等等文件。主頁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的方法來解決這個問題的 但是不知道怎麼把整個頁面都更新到。我可以拿到 整個頁面的數據回來 但不會從先貼
到相應的位置。

請各位高手指導,謝謝

发表于 2012-3-9 11:42:55 | 显示全部楼层
你可以先只 top
看看会出来不
如果分别 top foot personal_left 都分别可以出来的话
应该就是 index 的问题了

发表于 2012-3-9 11:49:39 | 显示全部楼层
我明白lz 的意思,我也想要到一个好的答案。    我知道2个方法可以处理

frameset

第二个就是把你top 和left左边的数据放配置文件里面默认加载   view就有值了
 楼主| 发表于 2012-3-9 15:04:51 | 显示全部楼层
top 等是可以分別出來的  但導入到 Index裏面就出現問題了。 不可以一起,否則會出現如文中的情況。
默認加載的方法不好。 因為有些頁面需要 有些頁面不需要。 放在config裏面 可以暫時解決 但其他頁面再遇到的時候 又要再用config.
 楼主| 发表于 2012-3-9 16:42:46 | 显示全部楼层
問題已經解決  和大家分享一下  
分2步 1 ajax請求 在Index.php  view文件裏面寫入 如下代碼:

<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);   替代
发表于 2012-3-14 15:19:41 | 显示全部楼层
~~你这方法还没用frameset 个好
发表于 2012-3-14 17:16:05 | 显示全部楼层
我一般是这样写的<?php $this->load->view('admin/public/head.html')?>
 楼主| 发表于 2012-3-19 15:47:37 | 显示全部楼层
這樣寫的話 只會顯示到 3個邊頁。沒有實現嵌套在 INDEX裏面。  後來我朋友告訴我 如果同時寫多個
$this->load->view('');的話 是順序執行的。如果執行到有/html結尾的文件 就結束了。沒有再加載下面的文件

本版积分规则