简单的搜索框下拉读取数据 可是ajax那接收不到数据 源代码如下:前端: search.php<!DOCTYPE html><head> <meta charset="utf-8" /> <link rel="stylesheet" href="css/example.css" /> <link rel="stylesheet" href="css/weui.css" /> <link rel="stylesheet" href="css/weui.min.css" /></head><body> <div class="weui_search_bar"> <div class="weui_search_inner"> <form action="" method="get"> <i class="weui_icon_search"></i> <input type="search" class="weui_search_input" name="keyword" id="keyword" placeholder="搜索" required /> <div id="searchbox" style="display: none;"></div> <div style="clear: both;"> </form> </div> </div></body><script type="text/javascript" src="js/jquery-2.1.4.js" ></script><script>$(document).ready(function() { var xhr = null; $('input[name="keyword"]').keyup(function() { if(xhr) { xhr.abort(); //如果存在ajax的请求,就放弃请求 } var inputText = $.trim(this.value); if(inputText != "") { //检测键盘输入的内容是否为空,为空就不发出请求 xhr = $.ajax({ type: 'GET', url: 'searchhoutai.php', cache: false, //不从浏览器缓存中加载请求信息 data: { "keyword": inputText }, //向服务器端发送的数据 dataType: 'json', //服务器返回数据的类型为json success: function(json) { if(json.length != 0) { //检测返回的结果是否为空 var lists = "<ul>"; $.each(json, function(i) { lists += "<li>" + json[i]['Id'] + "</li>"; //遍历出每一条返回的数据 }); lists += "</ul>"; $("#searchbox").html(lists).show(); //将搜索到的结果展示出来 $("li").click(function() { $("#keyword").val($(this).text()); //点击某个li就会获取当前的值 $("#searchbox").hide(); }) } else { $("#searchbox").hide(); } } }); } else { $("#searchbox").hide(); //没有查询结果就隐藏搜索框 } }).blur(function() { $("#searchbox").hide(); //输入框失去焦点的时候就隐藏搜索框 });});</script></html>后端 searchhoutai.php<?phpsession_start();error_reporting(0);function connectDB() { $db_server = "localhost"; $db_name = "test"; $db_user = "root"; $db_pwd = "root"; $dsn = "mysql:host=$db_server;dbname=$db_name;"; try { $connect = new PDO($dsn, $db_user, $db_pwd, array(PDO::ATTR_PERSISTENT => true)); //如果需要数据库长连接,需要最后加一个参数 } catch(PDOException $e) { exit('数据库连接失败'); } return $connect;}function test($keyword){//从数据库中查找关键字的函数 $db=connectDB(); /*$result=$db->prepare("select * from love where intro like '%?%'"); $result->bindParam(1,$keyword);//第一个问号的值 $result->execute(); */ $result=$db->query("select * from love where intro like '%{$keyword}%'"); } $keyword=$_GET['keyword'];//获取输入框的内容 $suggestion=test($keyword); echo json_encode($suggestion);//输出查询的结果(json格式输出) ?>
1 回答
已采纳
iters
TA贡献7条经验 获得超4个赞
php 代码中test方法没有返回值
function test($keyword){//从数据库中查找关键字的函数 $db=connectDB(); /*$result=$db->prepare("select * from love where intro like '%?%'"); $result->bindParam(1,$keyword);//第一个问号的值 $result->execute(); */ $result=$db->query("select * from love where intro like '%{$keyword}%'"); // 1. 对result需要调用方法拿到数组吧?! // 2. 此处应该有返回值吧 // 3. 建议先调试前端,后端直接echo json_encode([一些模拟的数据]),确保前端代码没问题,再调后端 }
- 1 回答
- 0 关注
- 1583 浏览
添加回答
举报
0/150
提交
取消