没用过fasttemplate,不过应该是在php中取得值,模板中的变量只是输出你想显示的东东:)

解决方案 »

  1.   

    运行main.php时自动把值传给指定文件,但你的main.php里没有指定出文件名
    $atemplate = new FastTemplate("路径/文件名");好像是这样吧:)
      

  2.   

    先谢过二位!
    回复:feel8
    比如detail那页,我这么处理,运行结果应该是加粗显示00001
    base.tpl
    <b>{id}</b>
    然后deltail.php里
    <? include.....
       $atemplate=new......;
       $atemplate->define(array('base'=>'base.tpl'));
      $atemplate->define(array('id' =>$id));
    //这句就会报错,说id Undefined variable,怎么回事呢? 
      $atemplate->Fastprint('base');
    ?>回复:leo000
    $atemplate->define(array('link'->'link.tpl'))不就是指定对应模板路径了吗?还需要在别处指定?
      

  3.   

    先谢谢二位!
    回复feel8:
    如果我在detail.php里直接用$id,就会报Undefined variable,
    如下代码(detail.php)
    <? include(......);
       $atemplate = new .....;
       $atemplate->define(array('a'=>'a.tpl'));
       $atemplate->define(array('detail'=>$id));
       $atemplate->FastPrint('a');
    ?>a.tpl
    <b>{detail}</b>运行结果应该是加粗显示00001,但却总是报Undefined variable:id in C:\Apache2\htdocs\msg_board\msg_search.php on line 4
    是怎么回事呢?回复leo000:指定模板对应的文件名是在$atemplate=>define(array('link'=>'link.tpl'))里指定的,还需要在new里指定吗?
      

  4.   

    <b>{id}</b>
    然后deltail.php里
    <? include.....
       $atemplate=new......;
       $atemplate->define(array('base'=>'base.tpl'));
       $atemplate->assign(id,$id); 
       $atemplate->parse(MAIN, "base"); 
       $atemplate->FastPrint(MAIN); 
    $atemplate->define(array('link'->'link.tpl'))不就是指定对应模板路径了吗?还需要在别处指定?
    就是指定模版,不需要别的地方了
      

  5.   

    对于fasttemplate好像指定模板变量是用assign而不是define吧
    看了楼主的帖子,好像对于ft的使用不是很正确哟。
    第一个问题:
    link1.tpl(模板文件名)<a href="detail.php?id={id}">详细</a>
    main.php(php脚本)
    <?
    include("class.fasttemplate.php");
    $atemplate = new FastTemplate(".");
    //给各个模板文件一唯一标示
    $atemplate->define(array('link' => 'link1.tpl'));
    //给模板里的变量赋值
    $atemplate->assign('id','00001');
    $atemplate->FastPrint('link');
    ?>00001如果是固定的那就没有必要再指定模板变量了,所以应当是程序获得。第二个问题:如下代码(detail.php)
    <? include(......);
       $atemplate = new .....;
       $atemplate->define(array('a'=>'a.tpl'));
       $atemplate->define(array('detail'=>$id));
       $atemplate->FastPrint('a');
    ?>a.tpl
    <b>{detail}</b>运行结果应该是加粗显示00001,但却总是报Undefined variable:id in C:\Apache2\htdocs\msg_board\msg_search.php on line 4
    是怎么回事呢?把你的$atemplate->define(array('detail'=>$id));改成
    $atemplate->assign(array('detail'=>$id));
    另外id应当被获得,如果没有获得那么在display error打开的情况下是会报错的。第三个问题:$atemplate = new FastTemplate("XXXX");如果你的模板都在一个文件夹之内,那么“XXXX”指的是存放模板的目录名,$atemplate=>define(array('link'=>'link.tpl')),这是定义在此目录下的一个文件为模板。模板的句柄为link。
      

  6.   

    回复楼上,这样写仍然报Notice: Undefined variable: id in C:\Apache2\htdocs\msg_board\msg_search.php on line 4
    而这时从地址栏里看,已经是....../detail.php?id=00001了,说明id已经传过来了啊,为什么在页面上就得不到这个值呢?
      

  7.   

    对于fasttemplate好像指定模板变量是用assign而不是define吧
    看了楼主的帖子,好像对于ft的使用不是很正确哟。
    第一个问题:
    link1.tpl(模板文件名)<a href="detail.php?id={id}">详细</a>
    main.php(php脚本)
    <?
    include("class.fasttemplate.php");
    $atemplate = new FastTemplate(".");
    //给各个模板文件一唯一标示
    $atemplate->define(array('link' => 'link1.tpl'));
    //给模板里的变量赋值
    $atemplate->assign('id','00001');
    $atemplate->FastPrint('link');
    ?>00001如果是固定的那就没有必要再指定模板变量了,所以应当是程序获得。第二个问题:如下代码(detail.php)
    <? include(......);
       $atemplate = new .....;
       $atemplate->define(array('a'=>'a.tpl'));
       $atemplate->define(array('detail'=>$id));
       $atemplate->FastPrint('a');
    ?>a.tpl
    <b>{detail}</b>运行结果应该是加粗显示00001,但却总是报Undefined variable:id in C:\Apache2\htdocs\msg_board\msg_search.php on line 4
    是怎么回事呢?把你的$atemplate->define(array('detail'=>$id));改成
    $atemplate->assign(array('detail'=>$id));
    另外id应当被获得,如果没有获得那么在display error打开的情况下是会报错的。第三个问题:$atemplate = new FastTemplate("XXXX");如果你的模板都在一个文件夹之内,那么“XXXX”指的是存放模板的目录名,$atemplate=>define(array('link'=>'link.tpl')),这是定义在此目录下的一个文件为模板。模板的句柄为link。
      

  8.   

    获得url传递的变量用$_GET['id']
      

  9.   

    回复ustb:
    1.第一个问题,没错,的确是程序获得,在此我仅用用00001这个常量举个例子而已
    2.我初学模板不假,但assign写成define实属笔误,呵呵,见谅
      不过,我的源程中的确是用assign(array('detail'=>$id)),但那个undefined variable的错误总是解决比了,而实际上$id值也没有获取到
    3.这个问题我的确不知,算是又多知道了一点东西,多谢赐教了:)
      

  10.   

    回复ustb,试了$_GET['id'],果然可以取到id值了,那再有个小问题请教,就是在url里没有id这个变量时就会报Undefined index: id,这该如何解决
    因为有些程序是本页面给本一面传递参数(比如翻页,将页码作为参数传递给本页面,但在首次进来的时候,是没有这个参数的,这个问题如何解决),谢谢了