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

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

    this.$ajax.post('', {operate: type, ids: this.data.id.toString(), data_type: 'ips'}, {timeout: 60000 ...

  2. gopath基础概念

    GOROOT golang安装路径. GOPATH 官方解释,请google.go工作环境中常常用到的一个很重要的环境变量(这种设计类似java).具体用途:go命令常常需要用到的,如go run,g ...

  3. java中volatile关键字的含义(转)

    在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...

  4. C# 为枚举创建新方法

    可以使用扩展方法添加特定于某个特定枚举类型的功能. 示例在下面的示例中,Grades 枚举表示学生可能在班里收到的字母等级分.该示例将一个名为 Passing 的扩展方法添加到 Grades 类型中, ...

  5. Angular 资料大集合

    https://angular.cn/   Angular 的中文网 http://www.apjs.net/#dir1    Angular 的中文网 http://www.ngnice.com/  ...

  6. Window10 安装问题汇总

       7月28号之后,由于没有收到windows的升级提醒,所以下载了ISO文件手动进行了升级.      本文就升级过程中遇到的问题进行一下总结:    1.ISO文件名称:cn_windows_1 ...

  7. MongoDB入门学习(1)

    什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供 ...

  8. excel表格系列

    MicroSoft Excel表格系列问题 1.excel表格修改默认行高 2.[Excel技巧]Excel实现部分保护技巧

  9. C# 中安全代码与不安全代码

    C# 中安全代码与不安全代码 P/Invoke 非托管代码需要在unsafe块中书写. using System; using System.Collections.Generic; using Sy ...

  10. Android异步处理三:Handler+Looper+MessageQueue深入详解

    在<Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面>中,我们讲到使用Thread+Handler的方式来实现界面的更新,其实是在非UI线程发送消息到U ...