View Code

复选框式查询 例题租房子

先看一下最后运行的结果,再来分析一下这个题

大概就是这个样子的,首先得先在数据库建一张表

上述的复选框都是根据数据库的表查出来的

连接数据库

先写大标题租房子

然后写个div 里面写区域的复选框

再写区域下面的一些复选框

嵌入php代码 从表里查到所有的区域去重

调用方法,循环遍历 出现的名称,做复选框

租赁类型和房屋类型都是那么做

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<?php

$db = new MySQLi("localhost","root","726","housedb");
//一共有四个条件
$tj1 = "1=1";
$tj2 = "1=1";
$tj3 = "1=1";
$tj4 = "1=1";
//区域的条件
if(!empty($_POST["qx"]) && count($_POST["qx"])>0)//判断区域有没有传入数据,qs是一个数组  并且它数量大于0
{
    
   $qx = $_POST["qx"];    
   $str = implode("','",$qx);      分隔符 返回一个字符串
       $tj1 = " area in('{$str}') ";     
}
//租赁类型的条件
if(!empty($_POST["zl"]) && count($_POST["zl"])>0)
{
    
    $zl = $_POST["zl"];
    //code in('类型','数量','都好久','队伍','额')
    $str = implode("','",$zl);
    
    $tj2 = " renttype in('{$str}') ";
}
//房屋类型的条件
if(!empty($_POST["fw"]) && count($_POST["fw"])>0)
{
    
    $fw = $_POST["fw"];
    //code in('类型','数量','都好久','队伍','额')
    $str = implode("','",$fw);
    
    $tj3 = " housetype in('{$str}') ";
}
//关键字的条件
if(!empty($_POST["key"]))    
{
    $key = $_POST["key"];
    $tj4 = " keyword like '%{$key}%' ";     
}

?>


<h1>租房子</h1>
<form action="zfchaxun.php" method="post">
<div>区域:<input type="checkbox" onclick="checkall(this)"  />全选</div>
<div>
<?php
$sqlq = "select distinct area from house";
$rq = $db->query($sqlq);
$aq  = $rq->fetch_all();
foreach($aq as $v)
{
    echo "<input type='checkbox' name='qx[]' value='{$v[0]}'> {$v[0]}";
}
?>
</div>
<br />
<div>租赁类型:<input type="checkbox"  />全选</div>
<div>
<?php
$sqlz = "select distinct renttype from house";
$rz = $db->query($sqlz);
$az  = $rz->fetch_all();
foreach($az as $v)
{
    echo "<input type='checkbox' name='zl[]' value='{$v[0]}'> {$v[0]}";  //设置name值
}
?>
</div>
<br />
<div>房屋类型:<input type="checkbox"  />全选</div>
<div>
<?php
$sqlf = "select distinct housetype from house";
$rf = $db->query($sqlf);
$af  = $rf->fetch_all();
foreach($af as $v)
{
    echo "<input type='checkbox' name='lx[]' value='{$v[0]}'> {$v[0]}";
}
?>
</div>
<br />
<div>关键字:<input type="text" name="key" />
<input type="submit" value="查询" />
</div>
<br />
</form>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>关键字</td>
<td>区域</td>
<td>面积</td>
<td>租金</td>
<td>租赁类型</td>
<td>房屋类型</td>
</tr>
<?php
$sqlall = "select * from house where {$tj1} and {$tj2} and {$tj3} and {$tj4}";
$rall = $db->query($sqlall);
$aall = $rall->fetch_all();
foreach($aall as $v)
{
    echo "<tr>
<td>{$v[1]}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
<td>{$v[5]}</td>
<td>{$v[6]}</td>
</tr>";
}

?>
</table>
<script type="text/javascript">       //实现复选框的全选

function checkall(a)
{
    var ck = document.getElementsByClassName("qxlist");
    
    if(a.checked)
    {
        for(var i=0;i<ck.length;i++)
        {
            ck[i].setAttribute("checked","checked");  复选框加个属性
        }
    }
    else
    {
        for(var i=0;i<ck.length;i++)
        {
            ck[i].removeAttribute("checked");
        }
    }
}

</script>
</body>
</html>

一般的步骤就是

先做大体的样子

然后做四个条件

最后做js控制全选

就ok啦

在做的时候一定要注意细节上问题

posted @ 2016-12-28 10:36  风中摇曳的小花朵  阅读(155)  评论(0编辑  收藏  举报