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);
    	}
    }
    
    ?>
    

      

  • 相关阅读:
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Windows10+CLion+OpenCV4.5.2开发环境搭建
    Android解决部分机型WebView播放视频全屏按钮灰色无法点击、点击全屏白屏无法播放等问题
    MediaCodec.configure Picture Width(1080) or Height(2163) invalid, should N*2
    tesseract
    Caer -- a friendly API wrapper for OpenCV
    Integrating OpenCV python tool into one SKlearn MNIST example for supporting prediction
    Integrating Hub with one sklearn mnist example
    What is WSGI (Web Server Gateway Interface)?
    Hub --- 机器学习燃料(数据)的仓库
  • 原文地址:https://www.cnblogs.com/sdzbxfcy/p/5617591.html
Copyright © 2011-2022 走看看