我想从数据库中为选择的员工姓名制作自动完整文本框。我对此并不了解。但我试着按照以下方式做到。
autocomplete.php
<?php
include 'func/db_connect.php';
if (isset($_POST['query']))
{
$query = $_POST['query'];
$mysql_query = mysql_query("SELECT * FROM employee WHERE name LIKE '%{$query}%'");
while ($row = mysql_fetch_assoc($mysql_query))
{
$array[] = $row['name'];
}
echo json_encode ($array);
}
js script
<script>
$('#typeahead').typeahead({
source: function(typeahead, query){
$.ajax({
url: 'autocomplete.php',
type: 'POST',
data: 'query=' + query,
dataType: 'JSON',
async: 'false',
success: function(data){
typeahead.process(data);
}
});
}
});
</script>
的index.php
<link rel="stylesheet" href="css/jquery-ui-1.10.3.custom.min.css" />
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/jquery-ui-1.10.3.custom.min.js"></script>
<td><b>Employee name : </td>
<td>
<input type="text" id="typeahead" data-provide="typeahead" size="30">
</td>
但它不起作用。制作自动填充文本框的正确方法是什么。
答案 0 :(得分:1)
尝试以下代码......
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" />
<p><label>Country:</label><input type='text' name='country' value='' class='auto'></p>
<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()
{
$(".auto").autocomplete({
source: "autocomplete.php",
minLength: 1
});
});
</script>
<?php
mysql_connect("localhost", "root", "")or die("cannot connect");
mysql_select_db("test")or die("cannot select DB");
$query = $_GET['term'];
$mysql_query = mysql_query("SELECT * FROM users WHERE name LIKE '%{$query}%'");
while ($row = mysql_fetch_assoc($mysql_query))
{
$array[] = $row['name'];
}
echo json_encode ($array);
答案 1 :(得分:0)
您需要将输入绑定到onchange操作
使用此
$(document).ready(function(){
$("#typeahead").change(function(event){
var query = document.getElementById('typeahead').value;
jQuery.ajax({
url: 'autocomplete.php',
type:'POST',
data:{'query':query},
dataType: 'JSON',
cache:false,
success:function(data){
// Do Anything You want here
},
error:function(){
// Do something else here
}
});
});
});
答案 2 :(得分:0)
// create search.php
<?php
$dbHost = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'company_db';
//connect with the database
$db = new mysqli($dbHost,$dbUsername,$dbPassword,$dbName);
//get search term
$searchTerm = $_GET['term'];
$query = $db->query("SELECT * FROM employee WHERE name LIKE '%".$searchTerm."%' ORDER BY name ASC");
while ($row = $query->fetch_assoc()) {
$data[] = $row['name'];
}
//return json data
echo json_encode($data);
?>
// SQL
CREATE TABLE IF NOT EXISTS `employee` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Dumping data for table `employee`
--
INSERT INTO `employee` (`id`, `name`) VALUES
(1, 'Ram'),
(2, 'Ravi'),
(3, 'Kumar'),
(3, 'Aaathava'),
(4, 'Sasi');
// End
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Autocomplete textbox </title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function() {
$( "#typeahead" ).autocomplete({
source: 'search.php'
});
});
</script>
</head>
<body>
<div class="ui-widget">
<label for="typeahead">Employee name: </label>
<input type="text" id="typeahead" data-provide="typeahead" size="30">
</div>
</body>
</html>
&#13;
答案 3 :(得分:-1)
您还没有解释该代码究竟发生了什么,但我认为最好使用此代码,例如https://jqueryui.com/autocomplete/。应该有一些在该软件包中使用它的例子。