我想按照this添加一个预先输入功能。以下是我编码的方式。当我检查control.log时,我看不到任何返回的内容。看起来类型函数永远不会被调用,因为我测试了数据搜索php,它确实有效。谁能指出我做错了什么?感谢。
<html>
<head>
<meta chatset="utf-8">
<title></title>
<link href="css/bootstrap.css" rel="stylesheet">
</head>
<body>
<div class="well">
<input type="text" class="span3" id="typeahead" data-provide="typeahead">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/typeahead.bundle.min.js"></script>
<script>
$(function() {
$("#typeahead").typeahead({
source: function(query, process) {
$.ajax({
url: 'source.php',
type: 'POST',
data: 'query=' + query,
dataType: 'JSON',
async: true,
success: function(data) {
control.log(data);
}
});
}
});
});
</script>
</body>
</html>
&#13;
<?php
if (isset($_POST['query'])) {
$db_host="localhost";
$db_username="myuser";
$db_pass="mypassword";
$db_name="mydb";
mysql_connect("$db_host", "$db_username", "$db_pass") or die(mysql_error()); mysql_select_db("$db_name")
or die ("Database not found");
$query=$_POST['query'];
$sql=mysql_query("SELECT prvname FROM prv WHERE prvname LIKE '%{$query}%'")
or die(mysql_error());
$array=array();
while ($row=mysql_fetch_assoc($sql)) {
$array[]=$row['prvname'];
}
echo json_encode($array);
}
?>
&#13;
答案 0 :(得分:0)
typeahead函数需要两个参数,所以如果你不需要传递任何typeahead选项,你可以传递null作为第一个参数:
$(function() {
$("#typeahead").typeahead(null, {
source: function(query, process) {
$.ajax({
url: 'source.php',
type: 'POST',
data: 'query=' + query,
dataType: 'JSON',
async: true,
success: function(data) {
console.log(data);
}
});
}
});
});