phpcms v9二次开发教程之联动搜索在房地产网站开发中的应用
开发简述:使用phpcms V9系统,修改源文件5个,创建模型:楼盘、出售、出租、中介、小区,增加联动菜单:楼盘,增加用户组:房产中介,
phpcms v9教程 联动搜索在房地产网站开发中的应用
。实现功能:
游客发布信息、会员申请中介、楼盘全方位展示、报名团购、看房功能,发布信息时可根据登陆后的会员资料自动填好联系信息,中介有自己的店铺,可给中介留言,联动筛选搜索、排序,房源对比功能。
联动筛选搜索功能的实现方法及代码:
要修改的文件就是list模板
核心代码:
$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" rder="id DESC" page="$page"}
改造后的
{pc:content action="lists" where="$where" catid="$catid" num="25" rder="$orderby" page="$page"}
使用的时候就比较麻烦了
状态:全部新盘在售尾盘售完
均价:全部4000以下& amp; lt;/a>
4000-5000
5000-6000
6000-7000
7000-8000
8000-9000
9000-10000
10000以上& amp; lt;/a>
类型:全部{pc:get sql="SELECT * FROM `v9house_type` where `module`='content'"}
{loop $data $key $val}
{$val[name]}
{/loop}
{/pc}
地区:
全部{pc:get sql="SELECT linkageid,name FROM `v9house_linkage` where parentid=(SELECT linkageid FROM `v9house_linkage` where name='淄博市')"}
{loop $data $key $val}
{$val[name]}
{/loop}
{/pc}
没办法,要想联动,就得每次都传递出所有需要联动的参数,所以url的参数部分就很多,容易晕掉~
获取搜索结果的代码是
共返回 {php echo count($data);} 个结果
放在
{pc:content action="lists" where="$where" catid="$catid" num="25" rder="$orderby" page="$page"}
下面
loop
的上面
共返回 {php echo count($data);} 个结果
排序的参数也很麻烦
面积
基本就这样了,希望有人能看懂
搜索表单也可以直接用在这里
给个例子