zoukankan      html  css  js  c++  java
  • Ajax 连接数据库实现类似百度搜索功能

    1、Html代码部分

    <!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>
    <script src="../jquery-1.11.2.min.js"></script>
    <style type="text/css">
    *{ margin:0px auto; padding:0px}
    #xianshi{ 300px; margin-top:20px}
    #txt{ 300px}
    #name{ 296px}
    #list{ 300px; position:absolute; z-index:5}
    .sj{ 298px; height:19px; border:1px solid #999; border-top:0px; background-color:white}
    .sj:hover{ cursor:pointer}
    #fg{ margin:30px 0px 20px 0px;}
    </style>
    </head>
    
    <body>
    <!--首先做一个外层div-->
    <div id="xianshi">
    <!--做两个div,分别放文本框和下拉列表-->
    	<div id="txt">
        	<input type="text" id="name" />
            <!--<input type="button" value="搜索" id="btn" />-->    
            </div>
        <div id="list">
        </div>
    </div>
    <hr id="fg" />
    <!--建一张表格,显示搜索到的数据-->
    <table id="tb" width="100%" border="1" cellpadding="0" cellspacing="0">
    	
    </table>
    </body>
    <script type="text/javascript">
    $(document).ready(function(e) {
    	
    	XianShi();
    	
    	//输入内容显示下拉,不用点击按钮
        $("#name").keyup(function(){
    		//先去到用户输入的值
    		var key = $(this).val();
    		//调用Ajax,
    		$.ajax({
    			async:false,//设置是否异步 
    			url:"chuli.php",
    			data:{key:key,bs:0},
    			type:"POST",
    			dataType:"TEXT",
    			success: function(data){//到这里我们再去写php文件
    			//$("#list").text(data)先输出一下data,看一下输出什么值
    				if(data.trim() == "")//如果返回的值为空,不往下走了
    				{
    					$("#list").html("");//如果为空的话,清掉
    				}
    				else
    				{
    					var shuju = data.trim().split("|");//查看完之后,对数组进行拆分
    					var str = "";
    					for(var i=0;i<shuju.length;i++)//进行循环,取到汽车名称的详细数据
    					{
    						str = str+"<div class='sj'>"+shuju[i]+"</div>";
    					}
    					$("#list").html(str);//输入关键字后,就出现相应的提示
    					$("#list").css("display","block");//为了解决再次输入不显示下拉列表的问题,在此进行设置
    					
    					}
    				}
    			
    			});
    			
    			//当下拉列表框出来的时候,鼠标放上显示背景色
    			$(".sj").mouseover(function(){
    				
    				$(".sj").css("background-color","white");
    				$(this).css("background-color","#F60");
    				
    				})
    			//鼠标离开去掉背景色
    			$(".sj").mouseout(function(){
    				$(this).css("background-color","white");
    				})
    				
    			//点击下拉列表框中的内容,将选中项的值放到文本框
    			$(".sj").click(function(){
    				var txt = $(this).text();
    				$("#name").val(txt);
    				$("#list").css("display","none");//输入完毕后,下拉列表框消失,但是再次输入就会不显示
    				XianShi();
    				})
    				
    			XianShi();
    		})
    		
    	$("#btn").click(function(){
    		
    		XianShi();
    		
    		})
    		
    	
    	
    });
    
    function XianShi()
    {//取关键字,根据关键字查询数据
    	var key = $("#name").val();
    	
    	$.ajax({
    		url:"chuli.php",
    		data:{key:key,bs:1},//设置bs:1,是为了将此部分使用的Ajax代码,与前面的进行区分,使逻辑更清楚
    		type:"POST",
    		dataType:"TEXT",
    		success: function(data){
    				var hang = data.trim().split("|");
    				
    				var str = "<tr><td>汽车名称</td><td>系列</td><td>上市时间</td><td>油耗</td><td>价格</td></tr>";
    				
    				for(var i=0; i<hang.length;i++)
    				{
    					var lie = hang[i].split("^");
    					str = str +"<tr><td>"+lie[1]+"</td><td>"+lie[2]+"</td><td>"+lie[3]+"</td><td>"+lie[4]+"</td><td>"+lie[7]+"</td></tr>";
    				}
    				
    				$("#tb").html(str);
    			}
    		});
    }
    </script>
    </html>
    

    2、php代码

    <?php
    include("../DBDA.php");
    $db = new DBDA();
    
    $bs = $_POST["bs"];
    $key = $_POST["key"];//取到的关键字
    
    if($bs == 1)
    {//根据关键字从汽车表里查询汽车名称
    	$sql = "select * from car where Name like '%{$key}%'";
    	echo $db->StrQuery($sql);//调用StrQuery方法,直接输出字符串
    }
    else
    {
    	if($key == "")//取到关键字后进行判断,如果是空字符串的话,返回为空,
    	{
    		echo "";
    	}
    	else
    	{
    		$sql = "select Name from car where Name like '%{$key}%'";
    		
    		echo $db->StrQuery($sql);
    	}
    }
    
    ?>
    

      

  • 相关阅读:
    time模块
    大胆想象! 安全设备专有机房建设思路
    自定义了一个email模块,符合大多数人的使用习惯
    meterpreter持久后门
    使用meterpreter让没有安装python解释器的肉鸡设备执行任意python程序
    入侵感知系列之管理后台发现思路
    入侵感知系列之弱口令检测思路
    入侵感知系列之webshell检测思路
    入侵感知系列之反连检测思路
    智能制造=人工智能?别把智能制造神秘化!
  • 原文地址:https://www.cnblogs.com/sdzbxfcy/p/5617591.html
Copyright © 2011-2022 走看看