phplib template 模板记录该如何显示~ 运行出错,显示list is not a valid handle 谁知道是怎么回事情吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 错的可多了。去PHPE.NET里看模版专题。里面有好多的例子。错误几点:首先,在left.htm里没有定义list块再次,$tpl_left -> parse("lists","list",true); 应该放在循环里,要不然就无所谓block了 你的 left.html 里面,在你上面贴的那些代码上面是不是有 <!-- BEGIN list -->?下面是不是有<!-- END rows -->? 我贴错了,应该是<!-- END list --> kingerq(多菜鸟) ,你第二点就错怪他了,是在循环里面的,foreach里面,呵呵,你看错了。 我一般这么写的:test.iHtml----------------------<ul> <!-- BETIN list --> <li>{title} [{date}]</li> <!-- END list --></ul>test.php---------------------<?php$tpl = new Template();$db = new DB_Sql();$tpl->set_file("test","test.iHtml");$tpl->set_block("test","list","listdata");$sql = "SELECT `id`,`title`,`date` FROM `news`";$sql .= "ORDER BY `id` DESC LIMIT 0, 20";$db->query($sql);if ($db->nf()) { while ($db->next_record()) { $replace = array ( "title" => $db->f("title"), "date" => str_replace("-","/",$db->f("date") ); $tpl->set_var($replace); $tpl->parse("listdata","list",true); }} else { die ("No data");}$tpl->parse("out","test");$tpl->p("out");?> 更正一下:<!-- BETIN list -->应为<!-- BEGIN list --> 定义了块,见“修改1 和 修改2”,但是仍然有同样的错误,什么原因啊/*------------------------------------------------- left.html 下面代码要循环显示 产生一组动态的菜单----------------------------------------------------*/<!--BEGIN list--> /*修改1*/ <tr> <td height="25" colspan="2"> <INPUT name="{picname}" src="../image/body/{picname}_{moutpic}.gif" onmouseover="javascript:swpic('{picname}','{moverpic}')" onmouseout="javacript:swpic('{picname}','{moutpic}')" onClick="location.href='../depart/xdjl_depart_wzyl.php';" type=image align="top"> </td> </tr><!--END list--> /*修改2*//*--------------------------------left.php---------------------------------*/$tpl_left = new Template("../body","keep");$tpl_left -> set_file("main","left.htm");/*************************************************************************/$tpl_left -> set_block("main","list","lists"); //这里不会用,目前拼感觉乱写/*************************************************************************/$array = array("fbwz"=>"0","wzsh"=>"0","cgx"=>"1");//开始获取模板所需变量值foreach ($array as $picname=>$picflag){ if($picflag="0"){ $moutpic="2"; $moverpic="1"; } else{ $moutpic="1"; $mverpic="2"; } //取值结束$tpl_left -> set_var("picname",$picname);$tpl_left -> set_var("moutpic",$moutpic);$tpl_left -> set_var("moverpic",$moverpic);/*************************************************************************/$tpl_left -> parse("lists","list",true); //这里不会用,凭感觉乱写~/*************************************************************************/}$tpl_left -> parse("mains","main");$tpl_left -> p("mains"); 回复人: rardge(Rardge) ( ) 信誉:100 2005-04-14 16:58:00 得分: 0 kingerq(多菜鸟) ,你第二点就错怪他了,是在循环里面的,foreach里面,呵呵,你看错了。 呵呵,真是不好意思哦,楼主,没有仔细看。 哈哈知道原因了之前的错误,没有在html页面上增加块<!-- BEGIN $name --> <!-- END $name -->修改后还是错误,是因为把<!-- BEGIN $name --> <!-- END $name -->写成<!--BEGIN $name--> <!--END $name-->,少了几个空格~谢谢各位了 php数组问题,请教了 php生成xml时,如何创建非闭合元素节点? sql特殊字符录入问题 为什么PHP会这么火? 一个分类汇总的题目,求高手解答~` smarty 的if 和section问题 貌似很简单的问题啊!!如何比较下面这几个字符串的大小??? 我错在哪呢? 程序的后台运行 cookie不能保存的原因是什么? 如何用php实现Fax传真功能 关于下载文件,请大家帮忙,谢谢
首先,在left.htm里没有定义list块
再次,$tpl_left -> parse("lists","list",true); 应该放在循环里,要不然就无所谓block了
test.iHtml
----------------------
<ul>
<!-- BETIN list -->
<li>{title} [{date}]</li>
<!-- END list -->
</ul>test.php
---------------------
<?php
$tpl = new Template();
$db = new DB_Sql();$tpl->set_file("test","test.iHtml");$tpl->set_block("test","list","listdata");$sql = "SELECT `id`,`title`,`date` FROM `news`";
$sql .= "ORDER BY `id` DESC LIMIT 0, 20";$db->query($sql);
if ($db->nf()) {
while ($db->next_record()) {
$replace = array (
"title" => $db->f("title"),
"date" => str_replace("-","/",$db->f("date")
);
$tpl->set_var($replace);
$tpl->parse("listdata","list",true);
}
} else {
die ("No data");
}$tpl->parse("out","test");
$tpl->p("out");
?>
<!-- BETIN list -->
应为
<!-- BEGIN list -->
left.html
下面代码要循环显示
产生一组动态的菜单
----------------------------------------------------*/
<!--BEGIN list--> /*修改1*/
<tr>
<td height="25" colspan="2">
<INPUT name="{picname}" src="../image/body/{picname}_{moutpic}.gif" onmouseover="javascript:swpic('{picname}','{moverpic}')" onmouseout="javacript:swpic('{picname}','{moutpic}')" onClick="location.href='../depart/xdjl_depart_wzyl.php';" type=image align="top">
</td>
</tr>
<!--END list--> /*修改2*/
/*--------------------------------
left.php
---------------------------------*/
$tpl_left = new Template("../body","keep");
$tpl_left -> set_file("main","left.htm");
/*************************************************************************/
$tpl_left -> set_block("main","list","lists"); //这里不会用,目前拼感觉乱写
/*************************************************************************/$array = array("fbwz"=>"0","wzsh"=>"0","cgx"=>"1");//开始获取模板所需变量值
foreach ($array as $picname=>$picflag){
if($picflag="0"){
$moutpic="2";
$moverpic="1";
}
else{
$moutpic="1";
$mverpic="2";
} //取值结束$tpl_left -> set_var("picname",$picname);
$tpl_left -> set_var("moutpic",$moutpic);
$tpl_left -> set_var("moverpic",$moverpic);/*************************************************************************/
$tpl_left -> parse("lists","list",true); //这里不会用,凭感觉乱写~
/*************************************************************************/
}
$tpl_left -> parse("mains","main");
$tpl_left -> p("mains");
kingerq(多菜鸟) ,你第二点就错怪他了,是在循环里面的,foreach里面,呵呵,你看错了。
呵呵,真是不好意思哦,楼主,没有仔细看。
知道原因了
之前的错误,没有在html页面上增加块<!-- BEGIN $name --> <!-- END $name -->
修改后还是错误,是因为把<!-- BEGIN $name --> <!-- END $name -->写成<!--BEGIN $name--> <!--END $name-->,少了几个空格~
谢谢各位了