多条件查询搜索页面,提交到当前页面处理

<?php
include("../DB.class.php");
$db = new DB();
/*var_dump($_POST["qy"]); //选择的区域
var_dump($_POST["zllx"]); //选择的租赁类型
var_dump($_POST["fwlx"]); //选择的房屋类型
var_dump($_POST["guanjianzi"]);*/ //输入的关键字
//$sql= "select * from House where Area in('坂井','三义庙','上上城')";所以需要将数组拆分成字符串,中间用 ',' 分隔,就用到implode("分隔符",数组)
$vg = "";
$tj1 = "1=1";
$tj2 = "1=1";
$tj3 = "1=1";
$tj4 = "1=1";
//判断传递值是否为空,四个条件判断四次
if(!empty($_POST["qy"]))
{
$attr = $_POST["qy"];
$str = implode("','",$attr); //将数组拆分成字符串,中间用 ',' 分隔
var_dump($str);
$tj1= " Area in ('{$str}')"; //两头的引号用查询语句中的引号补全 }
if(!empty($_POST["zllx"]))
{
$attr = $_POST["zllx"];
$str = implode("','",$attr);
$tj2= " RentType in ('{$str}')"; }
if(!empty($_POST["fwlx"]))
{
$attr = $_POST["fwlx"];
$str = implode("','",$attr);
$tj3= " HouseType in ('{$str}')"; } if(!empty($_POST["key"]))
{
$gjz = $_POST["key"];
$tj4= " KeyWord like '%{$gjz}%'";
$vg = $gjz;
}
$ss = " where {$tj1} and {$tj2} and {$tj3} and {$tj4}";
?>
<!--表单内容-->
<form action="zufang.php" method="post">
<div>区域:
<input type="checkbox" onclick="CheckAll(this,'qy')"/> 全选 <!--this代表按钮本身 qy代表下面选项的classname-->
</div>
<div>
    <?php
//区域选项
$sqlqy = "select distinct Area from house";
$attrqy = $db->Query($sqlqy,0,"housedb");
//var_dump($attr);
foreach($attrqy as $v)
{
echo "<input type='checkbox' value='{$v[0]}' class='qy' name='qy[]'>{$v[0]} ";
}
?>
</div><br /> <div>租赁类型:
<input type="checkbox" onclick="CheckAll(this,'zllx')"/> 全选
</div>
<div>
<?php
//租赁类型选项
$sqlzl = "select distinct RentType from house";
$attrzl= $db->Query($sqlzl,0,"housedb");
//var_dump($attrlx);
foreach($attrzl as $v)
{
echo "<input type='checkbox' value='{$v[0]}' class='zllx' name='zllx[]'/> {$v[0]}";
}
?>
</div><br /> <div>房屋类型:
<input type="checkbox" id="fwlxqx" onclick="CheckAll(this,'fwlx')"/> 全选
</div>
<div>
<?php
//房屋类型选项
$sqlfw = "select distinct HouseType from House";
$attrfw = $db->Query($sqlfw,0,"housedb");
//var_dump($attrfw);
foreach($attrfw as $v)
{
echo "<input type='checkbox' value='{$v[0]}' class='fwlx' name='fwlx[]'/> {$v[0]}";
}?>
</div><br />
 <!--关键字搜索框-->
<div>关键字:
<input type="text" name="key" value="<?php echo $vg;?>" />
</div>
<br />
<input type="submit" value="搜索" />
</form><br /> <!--房屋租赁表-->
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr><td>关键字</td><td>区域</td><td>建筑面积</td><td>租金</td><td>租赁类型</td><td>房屋类型</td></tr>
<?php
$sqlss = "select * from House ".$ss;
//echo $sqlss;
$attrss = $db->Query($sqlss,0,"housedb");
foreach($attrss as $v)
{ $rpg = "<span style='color:red'>{$vg}</span>";
$strg = str_replace($vg,$rpg,$v[1]);
echo "<tr> <td>{$strg}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
<td>{$v[5]}</td>
<td>{$v[6]}</td>
</tr>";
}
?>
</table>
</body>
<script type="text/javascript">
function CheckAll(a,b)
{
var xz = a.checked; //找到全选按钮的选中状态
var ck = document.getElementsByClassName(b); //找到全选相对应的checkbox
for(var i=0; i<ck.length;i++)
{
ck[i].checked = xz;
}
}
</script>

注意:

1.多个全选按钮用一个方法实现相同功能,就需要传递参数给方法

上文中就传了两个参数,this和classname

this代表元素本身,classname代表各个全选所对应的选项

2.将数组拼接成字符串用implode("分隔符",数组)

将字符串拆分成数组用explode("分隔符","字符串")

分隔符要写好,可以写个例子看清楚再写

php......房屋租赁练习的更多相关文章

  1. 【租房合同】2017北京市房屋租赁合同(自行成交版).doc

    最近在北京租房,找租房合同 这个文档还是比较新的,在百度文库上需要积分下载的文档,现在共享给大家吧. 下载地址: https://pan.baidu.com/s/1cEh7lhBqQgkJhB32Df ...

  2. php 之 房屋租赁练习(0509)

    做出以下页面并实现其对应的功能: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  3. C#事件

    事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂.而这些东西却往往又是编程中常用且非常重要的东西.大家都知道windows消息处理机制的重要,其实C#事件就是基于window ...

  4. 2013年9月份第2周51Aspx源码发布详情

    休闲农庄企业站源码  2013-9-13 [VS2008]功能介绍:  首页功能:关于我们 资讯中心 休闲娱乐 餐饮娱乐 环境展示 园林展示 交通指引 联系我们  后台功能:      基本信息:服务 ...

  5. C#事件(event)解析

    事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂.而这些东西却往往又是编程中常用且非常重要的东西.大家都知道windows消息处理机制的重要,其实C#事件就是基于window ...

  6. 6.24 AppCan移动开发者大会,我爱我家即将闪亮登场!

    6.24 AppCan移动开发者大会进入倒计时,报名通道即将关闭! “6月24日, 2016AppCan移动开发者大会即将召开,以“平台之上,应用无限”为主题,1500位行业精英汇聚在此,重磅新品发布 ...

  7. C#事件解析

    事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂.而这些东西却往往又是编程中常用且非常重要的东西.大家都知道windows消息处理机制的重要,其实C#事件就是基于window ...

  8. 尚学堂JavaEE项目备选

    偶然得知:记下待练 微博 软件人才网 论坛 博客系统 京东网上商城 赶集网 拉手网 优酷视频 百度知道(问答) 生产管理系统 房屋租赁网 金融股票

  9. 你可能把A/B测试做错了

    大卫奥格威说过,"永远不要停止试验,你的广告也就永远不会停止改进". 在当今的网络世界中,类似于吆喝科技 AppAdhoc A/B Testing 这样的工具越来越多,AB测试和转 ...

随机推荐

  1. Eclipse配色利器

    1 http://eclipsecolorthemes.org/  这是官网 2 安装后,window-preferences-general-appearance-color theme 即可找到多 ...

  2. 【整理】mysql中information_schema.tables字段说明

    [整理]mysql中information_schema.tables字段说明 2016-05-04 16:47:50|  分类: 默认分类|举报|字号 订阅     下载LOFTER我的照片书  | ...

  3. PHP面试题及答案解析(1)—PHP语法基础

    1. strlen( )与 mb_strlen( )的作用分别是什么? strlen和mb_strlen都是用于获取字符串长度.strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数.如 ...

  4. OrCAD16.6中对比两份DSN文件的方法

    OrCAD16.6中对比两份改版前后DSN文件的方法 两种方法: (1)第一种用软件对比netlist (2)用orcad自带的对比功能 一.将两份要对比的原理图都生成orTelesis.dll格式的 ...

  5. Cocos2D-X2.2.3学习笔记5(UI系统)

    前言: 1.字体 2.标签 3.菜单 4.进度条 5.计时器 Cocos2d-x中得UI控件没有几个.在游戏制作的过程中也不须要什么UI.即使有些复杂的UI,那都得我们自己来封装的.比方.关卡选择. ...

  6. printf()与 scanf()

    一直以来就没有认真看过控制台输入输出的格式,现今找了一些材料,分享如下: 1. 格式化规定符     Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ ...

  7. 【Mysql】之视图操作

    一.视图实例1-创建视图及查询数据操作 首先,创建三个表:user.course.user_course 表:user CREATE TABLE `user` ( `id` ) NOT NULL AU ...

  8. 创建一个动态Web项目:

    开始你的Eclipse,然后进入“文件”>“新建”>“动态Web项目,然后输入项目名称为HelloWorldStruts2和设置其他的选项,在下面的屏幕: 选择在屏幕上的所有默认选项,最后 ...

  9. 嵌入式开发之davinci--- 8148/8168/8127 中的High-DefinitionVideo Processing Subsystem (HDVPSS)

    High-DefinitionVideo Processing Subsystem (HDVPSS) 这一章介绍了高清视频处理子系统(HDVPSS). 2.1导论 2.1.1 简介 HDVPSS 使用 ...

  10. Linux进程间通信(五) - 信号灯(史上最全)及其经典应用案例

    信号灯概述 什么是信号灯 信号灯用来实现同步,用于多线程,多进程之间同步共享资源(临界资源). PV原语:信号灯使用PV原语 P原语操作的动作是: u  sem减1. u  sem减1后仍大于或等于零 ...