让smarty也ajax

 

这次的东西是配合xajax搞的,按照xajax的习惯,习惯将一个相关请求的功能用三个文件来写,分别是some.php、some.common.php、some.server.php;对于一个模板,如果只在some.php里面对模板中的变量进行赋值,那是很容易的;但是如果模板中某一部分的内容不是在页面加载的第一时间显示,而是希望用ajax来显示时怎么办呢?今天研究了一下午,到头来发现其实也很容易。

我要实现的效果是:主模版只需要在页面加载时将xajax的js代码输出,并且显示一个等待图片,然后在页面加载完成后再显示主要部分——几个广告图片(模板定义在子模板中)。

对于子模板中的数据,是在ajax请求后在后台处理的,一开始我把smarty类的实例化写在some.common.php中,以为在some.server.php被请求的时候smarty对象就会起作用了,结果错了,对象的作用域不能跨文件。于是,在处理请求的函数中再实例化smarty类一次,然后$smarty->assign()相关变量,并且$smarty->fetch()捕获到子模板要输出的html代码,最后用$objResponse->assign()将某个标签的innerHTML替换为刚刚捕获到的html代码,return $objResponse....OK!!

这样就搞定了!看来smarty模板是适应WEB新时代的,关键看怎么用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值