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

[控制器] 如何给frame传递参数

[复制链接]
发表于 2010-5-20 17:41:07 | 显示全部楼层 |阅读模式
网站的目录结构为
chip(网站页面碎片存放目录)
css(css文件存放目录)
img(图片存放目录)
js(js存放目录)
system(CI框架目录)
|--
......
......
|-application
        |-controllers
            |-client.php
        ................
        ................
        |-views
            |-index.php

index.php 文件代码如下

<html>
<head>
<title>管理中心</title>
<meta http-equiv=Content-Type content=text/html;charset=utf-8>
</head>
<frameset rows="64,*"  frameborder="NO" border="0" framespacing="0">
<frame src="/chip/admin_top.php" noresize="noresize" frameborder="NO" name="topFrame" scrolling="no" marginwidth="0" marginheight="0" target="main" />
  <frameset cols="200,*"  rows="560,*" id="frame">
<frame src="/chip/left.php" name="leftFrame" noresize="noresize" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" target="main" />
<frame src="/chip/right.php" name="main" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" target="_self" />
  </frameset>
<noframes>
  <body></body>
    </noframes>
</html>

通过控制器加载试图文件 index.php 一切正常,但是我想给left.php传递参数,使用$this->load->view("index",$data);总是传递不成功。

按照http://codeigniter.org.cn/forums/thread-82-1-1.html这里的方法可以传递参数,但是如果我有很多页面,控制器就会变得很大。使用上面的那种加载方法,如何传递参数呢,请高手指教。
发表于 2010-5-20 18:10:25 | 显示全部楼层
你需要单独为left.php做一个控制器
发表于 2010-5-20 18:11:31 | 显示全部楼层
http://codeigniter.org.cn/forums/thread-82-1-1.html
上面的帖子已经讲解的很详细了,但这一句“如果我有很多页面,控制器就会变得很大。”不明白是什么意思,页面多了可以分控制器啊,而且你的frame页面也不会太多吧,你总不能吧所有的功能放在一个文件中吧?
发表于 2010-5-20 18:14:28 | 显示全部楼层
left.php top.php right.php 分别在控制器中设置3个方法与之对应,你的控制器多两个函数不会有什么影响

实话告诉你,这就是最好的方法
 楼主| 发表于 2010-5-21 09:11:37 | 显示全部楼层
如果我的 左边frame有50个列表项 那么右边frame就有对应的50个页面,控制器中也要有50个对应
function xxx(){
    $this->load->view('xxx');
}
这样写是不是太麻烦了,真的没有办法实现
function cc(){
    $this->load->view('index',$data);
}

让index.php中的frame 直接接收$data 中的参数么?
 楼主| 发表于 2010-5-21 09:13:41 | 显示全部楼层
好像我想的有点儿错误,试验中。。。。。。
发表于 2010-5-21 10:03:58 | 显示全部楼层
frame 传参和 CI 无关吧!主页面和frame之间是两个请求,这之间传递数据和纯 PHP 有什么区别吗?以前用纯 PHP 怎么传递参数呢???
 楼主| 发表于 2010-5-21 14:17:47 | 显示全部楼层
老大终于出来了,呵呵。
控制器中
function ss(){
  //加载模型获取参数值
  $this->load->model('ddd') ;
  $data["dd"] = $this->ddd->sss();

  $this->load->view("index",$data);
}

视图 index.php 中是frame框架,就像最上面的框架代码一样,视图index.php中的框架好像接收不到通过$data传进来的值。

本版积分规则