编辑使用PHP和MySQL中获取数据的jQuery UI availableTag
的脚本现在是:
<script>
$('#tag').keyup(function() {
console.log($(this).val());
var termToSearch = $(this).val();
$(function() {
var availableTags;
$.ajax({
url: 'search_patient.php',
type: 'POST',
data: {term: termToSearch},
dataType: 'JSON',
success:function(output)
{
$.each(output, function(key, row)
{
availableTags = [row['patient_name']];
});
$("#tags").autocomplete({
source: availableTags
});
}
});
});
});
</script>
我可以在控制台中值看,但还没有看到任何自动完成上搜索文本框。
编辑完
我想使用jquery UI
库的自动完成功能,但使用PHP和MySQL填充的数组。
我开始用PHP和MySQL的代码,我需要根据我在搜索框中我打字获得病人的名字(实时自动完成搜索)
<?php
//Set error reporting on
error_reporting(E_ALL);
ini_set("display_errors", 1);
//Include connection file
require_once('../include/global.php');
//Json and PHP header
header('Content-Type: application/json');
//Getting Value from text box
$term = '%'.$_POST['term'].'%';
//Array to get data into it
$response = array();
//Query
$searchPatient = "SELECT * FROM patient WHERE patient_name LIKE :term";
$searchStmt = $conn->prepare($searchPatient);
$searchStmt->bindValue(":term", $term);
$searchStmt->execute();
if($searchStmt->rowCount() > 0){
$output = $searchStmt->fetchall();
foreach ($output as $o){
$response['patient_name'] = $o['patient_name'];
}
return json_encode($response);
}
?>
在我包括在该页面jQuery的UI库,并根据他们的建议,他们用的是以下几点:
<script src="../include/jquery-1.12.1.min.js"></script>
<script src="../include/jquery-ui.min.js"></script>
<script>
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$("#tags").autocomplete({
source: availableTags
});
});
</script>
我无法弄清楚如何使用$.ajax
摆脱PHP的$response
阵列,并把它作为availableTag = response.patient_name
我把它编辑成:
<script>
$(function() {
var availableTags;
var searchTerm = $("#tag").val();
$.ajax({
url: 'search_patient.php',
data: {term: searchTerm},
type: 'POST',
dataType: 'JSON',
success:function(response)
{
$.each(response, function(key, row)
{
availableTags = row['patient_name'];
});
$("#tags").autocomplete({
source: availableTags
});
}
});
});
</script>
我不得不在XHR term
为空:
而且我有这样的错误:
Notice: Undefined index: term in C:\wamp\www\dentist\pages\search_patient.php on line 13
编辑Covic
尝试使用alert(searchTerm)调试'searchTerm'在ajax之前;' – Covik
当它加载页面时我收到一个空警报。但是当我在搜索框中键入内容时,我没有收到任何提醒 – androidnation
您需要在'#tag'元素上监听'keyup'事件。 – Covik