php+validate实现文本框的自动完成

这里写图片描述

一般的搜索框都会有这种候选的功能,那这种效果是怎么实现的呢?
我简单的做了一个
准备材料:
1.本地php环境
2.jquery(版本随意)
3.validate插件 点击下载

代码如下
html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--加载静态文件-->
    <script src="jquery-1.8.3.js"></script>
    <script src="validate/jquery.validate.js"></script>
    <script src="validate/jquery-ui-1.10.3.custom.js"></script>
    <link rel="stylesheet" href="validate/smoothness/jquery-ui-1.10.3.custom.css" type="text/css"/>
    <script charset="utf-8" src="validate/jquery.validate.messages_zh.js"></script>
</head>
<body>



<form  >
    <input type="text" id="search"  />

</form>


<script>
    //调用自动补全的插件
    $("#search").autocomplete({
        "source": function (request, response) {
            //用户输入的关键字
            var content = request.term;


            $.ajax({
                'url':"test.php?w="+content,
                dataType:'json',
                success:function (re) {


                    response(re);

                }


            });



        }


    });


</script>


</body>
</html>

php

<?php


    //获取关键字
    $word=$_GET['w'];

    //连接数据库并对对应字段进行模糊搜索
    $dsn="mysql:host=localhost;dbname=user";
    $username="root";
    $password="root";

    $db=new PDO($dsn,$username,$password);


    $spl="select * from user where username like '%{$word}%'";

    $s= $db->prepare($spl);

    $s->execute();


    $arr=array();
    while ($row=$s->fetch(PDO::FETCH_ASSOC)){

        $arr[]=$row['username'];


    }
    //将搜索到的结果转成json传给前端
    //这里如果有中文可能再转json时出现乱码,至于怎么解决去百度吧
    echo json_encode($arr);

数据库结构为
这里写图片描述

效果为

这里写图片描述

第一次发帖,嘿嘿嘿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值