php与smarty结合应对表单get的一个小例子
2010-08-26 14:16
447 查看
关键词:smarty, php, get
目的: 给一个简易网站(无数据库)设计简易搜索功能,搜索原理,由于不是基于数据库的,只能采用关键词比对的方法,比如,用户在搜索框中输入某个词,点击搜索按钮,然后程序获取该关键词,与数据库中事先设置好的关键词比对,如果是,则进行下一步的处理,比如跳转,比如展示。
index.php
search.php 处理页面
search.tpl 模板
运行,可以,但是很不妥,每次这样添加关键词太麻烦,要改很多地方,于是重写search.tpl 模板
运行,报错。纠结中...
各种错误,那个烦.....
最后研究发现 smarty 自带了 从get 获取 值的方法,这样就不必套用php 来搞定了!紧急更新,最终成功!
当然别忘了配置调用它的php文件:
生活还真是有意思!~
目的: 给一个简易网站(无数据库)设计简易搜索功能,搜索原理,由于不是基于数据库的,只能采用关键词比对的方法,比如,用户在搜索框中输入某个词,点击搜索按钮,然后程序获取该关键词,与数据库中事先设置好的关键词比对,如果是,则进行下一步的处理,比如跳转,比如展示。
index.php
<form action="search.php" method="get"> <input type="text" name="k" value="搜索" /> <input type="submit" title="搜索" value=" " onclick="javascript:if(k.value =='搜索'){ alert('您好像忘记输入关键词了哦?!'); return false;}" /> </form>
search.php 处理页面
<?php require('libs/Smarty.class.php'); $smarty = new Smarty; $smarty->force_compile = true;//最后要注销 $smarty->debugging = false; $smarty->caching = true; $smarty->cache_lifetime = 120; //$smarty->caching = false;//强迫永久编译 //$smarty->clear_all_cache();//清除所有缓存 $smarty->display('search.tpl'); ?>
search.tpl 模板
$keyword= $_GET['k']; $find1 = '保健'; $find2 = '叶酸'; $find3 = '妈妈'; $find4 = '孕'; $find5 = '宝'; $find6 = '婴'; $find7 = '奶粉'; $find8 = '美赞臣'; $find9 = '雅培'; $find10 = '纸尿布'; $find11 = '母婴'; $find12 = '用品'; $pos1 = strpos($keyword, $find1) || strpos($keyword, $find2) || strpos($keyword, $find3) || strpos($keyword, $find4); $pos2 = strpos($keyword, $find5) || strpos($keyword, $find6) || strpos($keyword, $find7) || strpos($keyword, $find8) || strpos($keyword, $find9); $pos3 = strpos($keyword, $find10) || strpos($keyword, $find11) || strpos($keyword, $find12); if ($pos1 != false) { echo "已经搜索到结果,正在为您进行跳转...."; ?> <mce:script language='javascript'><!-- window.location.href='list.php#health'; // --></mce:script> <?php } else if ($pos2 != false){ echo "已经搜索到结果,正在为您进行跳转...."; ?> <mce:script language='javascript'><!-- window.location.href='list.php#health'; // --></mce:script> <?php } else if ($pos3 != false){ echo "已经搜索到结果,正在为您进行跳转...."; ?> <mce:script language='javascript'><!-- window.location.href='list.php#commodity'; // --></mce:script> <?php } else{ ?>
运行,可以,但是很不妥,每次这样添加关键词太麻烦,要改很多地方,于是重写search.tpl 模板
<?php $keyword= $_GET['k']; foreach ($find1 as $value1) { if( strpos($keyword, $value1) >-1) { echo "<mce:script language='javascript'><!-- window.location.href='list.php#powder' // --></mce:script>"; } } foreach ($find2 as $value2) { if( strpos($keyword, $value2) !== false) { echo "<mce:script language=javascript><!-- window.location.href=list.php#health // --></mce:script>"; } } foreach ($find3 as $value3) { if( strpos($keyword, $value3) !== false) { echo "<mce:script language=javascript><!-- window.location.href=list.php#commodity // --></mce:script>"; } } ?>
运行,报错。纠结中...
各种错误,那个烦.....
最后研究发现 smarty 自带了 从get 获取 值的方法,这样就不必套用php 来搞定了!紧急更新,最终成功!
{* use '$smarty.get.k' to get the 'k' value in URL eg: index.php?k=xxx *} {assign var="userinput" value=$smarty.get.k} {foreach from=$search.keywords[0] item=words} {$words} - {$userinput} {if strpos($userinput, $words) !== false} } 搞定! {/if} {/foreach}
当然别忘了配置调用它的php文件:
$search = array( //keywords prepared for search 'keywords' => array( array('奶粉','naifen','宝','bao','婴','ying','美赞臣','meizanchen','雅培','yapei'), array('保健','baojian','孕','yun','母','mu','妈','ma'), array('尿','niao','用品','yongpin') ) //其他配置.... ); ... $smarty->assign('search',$search);
生活还真是有意思!~
相关文章推荐
- php与smarty结合应对表单get的一个小例子
- 自己写了一个通过smarty与php相互结合的例子,动态生成静态程序,写的很烂
- php与smarty相互结合的显示例子,正在完善中,先吧写的发上来,哈哈
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- 早上学习了一个smarty局部刷新的例子发上来大家看看,过两天我会把它与数据库相互结合起来写成功发过来的
- 一个比较经典的php批量删除程序,与smarty相互结合使用
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- 整合了一个PHP分页函数与smarty与程序显示的例子
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- php结合表单实现一些简单功能的例子
- php与smarty相互结合的更新例子,本人自己写,呵呵,写的很烂,各位提点建议
- PHP处理HTML表单的一个简单例子 (活动统计)
- php结合表单实现一些简单功能的例子
- php与smarty相互结合的插入例子
- PHP的一个基础知识 表单提交
- [第六季]3.一个表单验证的例子
- [PHP代码] 用php的fsocket模拟get提交 模拟post提交表单
- php pthreads 多线程扩展的使用:一个较为稳定例子。
- PHP判断表单复选框选中状态完整例子