我想通過以下this添加鍵入功能。以下是我編碼的方式。當我檢查control.log時,我沒有看到任何返回。看起來typeahead函數永遠不會被調用,因爲我測試了搜索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>
<?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);
}
?>
有你的代碼中散佈的空間,就在這裏還是在你的實際代碼中?例如'$ _POST','m ysql_query'等等。JS是否向PHP代碼發出請求? – chris85
散佈的空間就在我發佈的代碼上,因爲我試圖整理它們。我不認爲JS已經被調用了,因爲我在$(「#typeahead」)行後面添加了一個alert。typeahead({'並且它沒有彈出。 –