对于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。
回复楼上,这样写仍然报Notice: Undefined variable: id in C:\Apache2\htdocs\msg_board\msg_search.php on line 4 而这时从地址栏里看,已经是....../detail.php?id=00001了,说明id已经传过来了啊,为什么在页面上就得不到这个值呢?
对于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。
$atemplate = new FastTemplate("路径/文件名");好像是这样吧:)
回复: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'))不就是指定对应模板路径了吗?还需要在别处指定?
回复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里指定吗?
然后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'))不就是指定对应模板路径了吗?还需要在别处指定?
就是指定模版,不需要别的地方了
看了楼主的帖子,好像对于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。
而这时从地址栏里看,已经是....../detail.php?id=00001了,说明id已经传过来了啊,为什么在页面上就得不到这个值呢?
看了楼主的帖子,好像对于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。
1.第一个问题,没错,的确是程序获得,在此我仅用用00001这个常量举个例子而已
2.我初学模板不假,但assign写成define实属笔误,呵呵,见谅
不过,我的源程中的确是用assign(array('detail'=>$id)),但那个undefined variable的错误总是解决比了,而实际上$id值也没有获取到
3.这个问题我的确不知,算是又多知道了一点东西,多谢赐教了:)
因为有些程序是本页面给本一面传递参数(比如翻页,将页码作为参数传递给本页面,但在首次进来的时候,是没有这个参数的,这个问题如何解决),谢谢了