phpcms v9教程 联动搜索在房地产网站开发中的应用
开发简述:使用phpcms v9系统,修改源文件5个,创建模型:楼盘、出售、出租、中介、小区,增加联动菜单:楼盘,增加用户组:房产中介。
实现功能:
游客发布信息、会员申请中介、楼盘全方位展示、报名团购、看房功能,发布信息时可根据登陆后的会员资料自动填好联系信息,中介有自己的店铺,可给中介留言,联动筛选搜索、排序,房源对比功能。
联动筛选搜索功能的实现方法及代码:
要修改的文件就是list.html模板
核心代码:
<?php
$theurl = app_path."index.php?m=content&c=index&a=lists&catid=$catid";
$where = "status=99";
$orderby = "";
foreach ($_get as $field => $r) {
if($r) {
if(!in_array($field,array('m','c','a','page'))){
if(strrpos($field,'_')){
$arr=explode("-",$r);
$field = str_replace('_','',$field);
$where .= " and $field >= '$arr[0]' and $field <= '$arr[1]'";
}else if($field == 'title'){
$where .= " and $field like "."'%".$r."%'";
}else if($field == 'orderby'){
$orderby = str_replace('_',' ',$r);
}else{
$where .= " and $field='$r'";
}
}
}
}
//if($where)$where = substr($where,5);
if(!$orderby)$orderby = "id desc";
?>
用这段代码来构造查询条件和排序方式,有了这段代码之后,要把list.htm获得列表的pc语句改造成这样
原来的
{pc:content action="lists" catid="$catid" num="25" order="id desc" page="$page"}
改造后的
{pc:content action="lists" where="$where" catid="$catid" num="25" order="$orderby" page="$page"}
使用的时候就比较麻烦了
<p><span>状态:</span><span><a href='{url_par("price_=$_get[price_]&hstatus=& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>全部</a& amp; gt;</span>
<span {if $_get[hstatus] == 1}class='shaixuan'{/if}><a href='{url_par("price_=$_get[price_]&hstatus=1& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>新盘</a& amp; gt;</span>
<span {if $_get[hstatus] == 2}class='shaixuan'{/if}><a href='{url_par("price_=$_get[price_]&hstatus=2& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>在售</a& amp; gt;</span>
<span {if $_get[hstatus] == 3}class='shaixuan'{/if}><a href='{url_par("price_=$_get[price_]&hstatus=3& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>尾盘</a& amp; gt;</span>
<span {if $_get[hstatus] == 4}class='shaixuan'{/if}><a href='{url_par("price_=$_get[price_]&hstatus=4& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>售完</a& amp; gt;</span></p>
<p><span>均价:</span><span><a href='{url_par("price_=&hstatus=$_get[hstatus]& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>全部</a& amp; gt;</span>
<span {if $_get[price_] == '0-4000'}class='shaixuan'{/if}><a href='{url_par("price_=0-4000&hstatus=$_get[hstatus]& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>4000以下& amp; lt;/a></span>
<span {if $_get[price_] == '4000-5000'}class='shaixuan'{/if}><a href='{url_par("price_=4000-5000&typeid=$_get[typeid]&hstatus=$_get[hstatus]&address=$_get[address]",$theurl)}'>4000-5000</a></span>
<span {if $_get[price_] == '5000-6000'}class='shaixuan'{/if}><a href='{url_par("price_=5000-6000&hstatus=$_get[hstatus]&typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>5000-6000</a></span>
<span {if $_get[price_] == '6000-7000'}class='shaixuan'{/if}><a href='{url_par("price_=6000-7000&hstatus=$_get[hstatus]&typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>6000-7000</a></span>
<span {if $_get[price_] == '7000-8000'}class='shaixuan'{/if}><a href='{url_par("price_=7000-8000&hstatus=$_get[hstatus]&typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>7000-8000</a></span>
<span {if $_get[price_] == '8000-9000'}class='shaixuan'{/if}><a href='{url_par("price_=8000-9000&hstatus=$_get[hstatus]&typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>8000-9000</a></span>
<span {if $_get[price_] == '9000-10000'}class='shaixuan'{/if}><a href='{url_par("price_=9000-10000&hstatus=$_get[hstatus]&typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>9000-10000</a></span>
<span {if $_get[price_] == '10000-100000'}class='shaixuan'{/if}><a href='{url_par("price_=10000-100000&hstatus=$_get[hstatus]& typeid=$_get[typeid]&address=$_get[address]",$theurl)}'>10000以上& amp; lt;/a></span>
</p>
<p><span>类型:</span><span><a href="{url_par("price_=$_get[price_]&hstatus=$_get[hstatus]& typeid=&address=$_get[address]",$theurl)}">全部</a></span& amp; gt;
{pc:get sql="select * from `v9house_type` where `module`='content'"}
{loop $data $key $val}
<span {if $_get[typeid] == $val[typeid]}class='shaixuan'{/if}><a href="{url_par("price_=$_get[price_]&hstatus=$_get[hstatus]&typeid=$val[typeid]&address=$_get[address]",$theurl)}">{$val[name]}</a></span>
{/loop}
{/pc}</p>
<p><span>地区:</span>
<span><a href="{url_par("price_=$_get[price_]&hstatus=$_get[hstatus]& typeid=$_get[typeid]&address=",$theurl)}">全部</a></span& amp; gt;
{pc:get sql="select linkageid,name from `v9house_linkage` where parentid=(select linkageid from `v9house_linkage` where name='淄博市')"}
{loop $data $key $val}
<span {if $_get[address] == $val[linkageid]}class='shaixuan'{/if}> <a href="{url_par("price_=$_get[price_]&hstatus=$_get[hstatus]&typeid=$_get[typeid]&address=$val[linkageid]",$theurl)}">{$val[name]}</a></span>
{/loop}
{/pc}</p>
没办法,要想联动,就得每次都传递出所有需要联动的参数,所以url的参数部分就很多,容易晕掉~
获取搜索结果的代码是
共返回 {php echo count($data);} 个结果
放在
{pc:content action="lists" where="$where" catid="$catid" num="25" order="$orderby" page="$page"}
下面
loop
的上面
共返回 {php echo count($data);} 个结果
排序的参数也很麻烦
<a href='{url_par("price_=$_get[price_]&area_=$_get[area_]& shi=$_get[shi]&typeid=$_get[typeid]&address=$_get[address]& orderby=area_desc",$theurl)}'>面积</a>
基本就这样了,希望有人能看懂
搜索表单也可以直接用在这里
给个例子
<form name="myform1" method="get" action="">
<input type="hidden" name="m" value="content">
<input type="hidden" name="c" value="index">
<input type="hidden" name="a" value="lists">
<span><select name="catid">
<option value="6">出售</option>
<option value="12">求购</option>
</select></span>
<span><select name="area_">
<option value="">面积不限</option>
<option value="0-50">小于50</option>
<option value="50-80">50到80</option>
<option value="80-120">80到120</option>
<option value="120-200">120到200</option>
<option value="200-10000">大于200</option>
</select></span>
<span><select name="shi">
<option value="">所有户型</option>
<option value="1">1室</option>
<option value="2">2室</option>
<option value="3">3室</option>
</select></span>
<span><input name="title" type="text" class="text4" style="width:60px;" /></span>
<span><input type="submit" value="" class="text3" /></span></form>
phpcms v9教程 联动搜索在房地产网站开发中的应用的更多相关文章
- 23个phpcms v9模板制作及二次开发常用代码案例
0:调用最新文章,带所在版块 {pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url a ...
- PHPCMS V9教程之快速入门
这篇文章要为大家来介绍PHPCMS V9这个系统的一些基本知识,PHPCMS是基于面向对象的,严格的安装MVC开发模式开发的CMS系统,同时他还是一个非 常不错的PHP框架.下面我们一起看一下PHPC ...
- 微信小程序开发教程 #043 - 在小程序开发中使用 npm
本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...
- Python基础教程(011)--程序开发中的错误及原因
前言 排查代码开发中的错误 内容 1,编写的程序不能正常执行,或者执行的结果不是我们期望的 2,俗称bug,是程序开发常见的,初学常见的原因有 手误 对已经学习的知识点理解不足 对语音还有需要学习和提 ...
- phpcms v9为联动菜单字段添加验证提醒功能 解决标题不能为空
v9系统中,如果你在模型中添加了联动菜单字段就算你在字段设置中设置了最小值为1,提交内容之前你不选择联动菜单中的值,也不会出现类似类似“标题不能为空”这样的提示下面提供解决办法打开phpcms\lib ...
- 开发中可能会用到的几个 jQuery 小提示和技巧
今天,我们将分享一些很有用的技巧和窍门给 jQuery 开发人员.jQuery 是最好的 JavaScript 库之一,用于简化动画,事件处理,支持 Ajax 和 HTML 的客户端脚本.网络中有大量 ...
- phpcms v9实现wap单页教程
下面以添加“关于我们”这一单页为例作phpcms V9 wap手机门户添加单页的教程说明: 步骤一:复制phpcms\templates\default\wap下的maps.html,粘贴重命名为ab ...
- 怎么安装phpcms?PHPCMS V9安装图文教程
Phpcms是国内领先的网站内容管理系统, 同时也是一个开源的PHP开发框架.PHPCMS V9目前已提供文章.图片.下载等内容模型,在此基础上可非常方便的扩展出信息.房产.交友.点评等功能.已有的模 ...
- phpcms V9 二次开发------(获取点击数详解)
关于phpcms V9的点击数的使用应该有不少数是直接调用网上搜索到的代码,但是对于一些想要深入研究开发的人来说,看到网上的代码后更是不解,本人这几天看了看,了解了一些东西,在这里写出来分享一下,首先 ...
随机推荐
- 关于如何将C语言源文件转化为汇编文件
--转载自:http://blog.21ic.com/user1/6088/archives/2010/68469.html 方法:(假设当前工程中只有一个C代码文件) 第1步:新建一个工程,添加C文 ...
- 驱动里执行应用层代码之KeUserModeCallBack(WOW64是由三个动态库wow64.dll wow64win.dll wow64cpu.dll来实现)
在驱动层(ring0)里执行应用层(ring3)代码,这是个老生常谈的技术,而且方法也挺多. 这种技术的本质:其实就是想方设法在驱动层里把应用层代码弄到应用层去执行. 比如在APC异步调用中,KeIn ...
- 14.1.3 检查InnoDB 可用性:
14.1.3 Checking InnoDB Availability 14.1.3 检查InnoDB 可用性: 确定是否你的server 支持InnoDB: 1.执行命令 SHOW ENGINES; ...
- POJ1125 Stockbroker Grapevine(最短路)
题目链接. 分析: 手感不错,1A. 直接穷举的起点, 求出不同起点到其它点最短路中最长的一条的最小值(好绕). #include <iostream> #include <cstd ...
- 【转】(DT系列一)DTS结构及其编译方法----不错
原文网址:http://www.cnblogs.com/biglucky/p/4057476.html DTS结构及其编译方法 一:主要问题 1,需要了解dtsi与dts的关系 2,dts的结构模型 ...
- python摘抄
核心模块: random 当你的程序需要随机数功能时,random 模块就能派上用场.该模块包含多个伪随机数发生器,它们均以当前的时间戳为随机数种子.这样只要载入这个模块就能随时开始工作.下面列出了该 ...
- java笔记8之选择结构IF
注意1 A比较表达式无论简单还是复杂,结果必须是boolean类型 B:if语句控制的语句体如果是一条语句,大括号可以省略: 如果是多条语句,就不能省略.建议永远不要省 ...
- unity3D基础学习 通过判断鼠标点击的是否是目标物体,物体旋转,滑动滚轮缩放拉近视角
贴代码: 摄像机的拉近视角代码: public Transform target; public float minFov = 15f; public float maxFov = 7 ...
- SKTransition类
继承自 NSObject 符合 NSObject(NSObject) 框架 /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0 ...
- 安卓kernel自主唤醒系统方法—设置alarm
我们知道alarm一般是上层设置后.kernel驱动里面将set time写入alarm寄存器,到达时间后trigger,殊不知kernel里面也能够自主设置alarm. 尤其是系统在休眠时驱动nee ...