我正在使用jquery ui,但它不能使用php和MySQL,虽然它使用javascript我正在尝试超过10个小时。我用过简单的html表单
这是我的HTML代码
<div class="col-md-12" class="col-centered">
<form id="user_form" method="GET">
<input id="tags" type="text" class="dic_input ui-autocomplete-input" name="ajaxData"/>
<button class="btn btn-lg btn-default"><i class="fa fa-2x fa-search"></i></button>
</form>
</div>
这是我的jquery代码
$(document).ready(function(){
$( "#tags" ).autocomplete({
source: 'autocomplete.php'
});
});
我从php文件中获得结果
<?php
require("admin/functions/dbconfig.php");
//get search term
$searchTerm = $_GET['term'];
//get matched data from skills table
$sql ="SELECT lemma FROM lemma WHERE lemma like '" . $searchTerm . "%' ORDER BY lemma LIMIT 0,6";
$q=mysql_query($sql);
while ($row = mysql_fetch_array($q)) {
$data[] = str_replace("-"," ",$row['lemma']);
}
//return json data
echo json_encode($data);
?>
答案 0 :(得分:0)
您可能需要设置内容类型标题,以便JQuery知道它返回的内容:
header("Content-type:application/json")
答案 1 :(得分:0)
请尝试
** Html文件**
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Demo</title>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" />
</head>
<body>
<form action='' method='post'>
<p><label>Country:</label><input type='text' name='country' value='' class='auto'></p>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() {
//autocomplete
$(".auto").autocomplete({
source: "autocomplate.php",
minLength: 1
});
});
</script>
</body>
</html>
** PHP文件** 文件名:autocomplate.php
<?php
define('DB_SERVER', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_NAME', 'demo');
if (isset($_GET['term'])){
$return_arr = array();
try {
$conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT country FROM countries WHERE country LIKE :term');
$stmt->execute(array('term' => '%'.$_GET['term'].'%'));
while($row = $stmt->fetch()) {
$return_arr[] = $row['country'];
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
}
?>