index.php
$tpl->assign('servers',array('11vm'=>'11vm','12vm'=>'12vm'));
$tpl->display('static/index.htm');
index.htm
<frameset rows="21%,79%" framespacing="0" frameborder="1" border="0">
<frame src="<{$STATIC_PATH}>menu.htm" noresize="noresize"  />
<frame src="<{$STATIC_PATH}>introduce.htm" name="showframe" />
</frameset>
===============
希望在introduce.htm中可以用到php打的这个变量  可以做到吗?

解决方案 »

  1.   

    有个折衷的办法,利用超全局变量.//php文件中这样写
    global $var;//申明全局变量
    ...
    $var = 'Hi Smarty';//赋值,无需再使用smarty的assign方法//模板中这样获取
    <{php}>echo $GLOBALS['var'];<{/php}>
      

  2.   


    非常感谢 
    机器名<select name='SERVER' id='SERVER'><{foreach from=$servers key=k item=l}><option value="<{$k}>"><{$l}></option><{/foreach}></select>我想把这个global值作为server要怎么写呢?
      

  3.   

    你也是在“开玩笑”吧?
    框架页与主页面分属于不同的 http 会话!
      

  4.   


    没注意看HTML代码,只看标题了.你是对的
      

  5.   

    smarty其实也是类似包含的原理,所以它只会对直接页面起作用,直接编译了,和第三个页面没关系
      

  6.   


    我尝试了smarty的include  模板a包含模板b 传递变量 并在模板a展示的时候是有效的 问题是frameset不能用这个include  
      

  7.   


    frameset页面是php解析返回的
    introduce.htm直接请求html不太明白会话的概念,虽然是不同的requset+response  sessionid应该可以控制成一致的 这样有办法解决吗?
      

  8.   

    frameset页面是php解析返回的
    introduce.htm直接请求html这就是两次会话了由于 introduce.htm 是静态的 html 文档
    你可以在 frameset页面 的 php 程序中产生这个文件
      

  9.   

    你不是在用 smarty 吗? 他不是提供了生成静态页面的方法了吗?