Я хотел добавить функцию typeahead, следуя this. Ниже приводится порядок кодирования. Когда я проверяю control.log, я ничего не вижу. Кажется, функция typeahead никогда не вызвана, поскольку я тестировал php поиска данных, и это действительно работает. Может ли кто-нибудь указать мне, что я сделал не так? Благодарю.Невозможно вызвать функцию typeahead
<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 »). Typeahead ({', и он не всплывал. –