我正在使用jquery-ui
库将自动完成库添加到我的项目中。JQuery的自动完成库返回数组没有来自PHP脚本的属性
我创建的PHP脚本,我需要得到的数据:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
require_once('connection.php');
$cid = $_SESSION['clinic_id'];
$searchTxt = '%'.$_POST['searchTxt'].'%';
$res = array();
$getPatients = "SELECT * FROM patient WHERE clinic_id = :cid and patient_name_en LIKE :searchTxt ORDER BY patient_id DESC";
$execGetPatients = $conn->prepare($getPatients);
$execGetPatients->bindValue(':cid', $cid);
$execGetPatients->bindValue(':searchTxt', $searchTxt);
$execGetPatients->execute();
$getPatientsResult = $execGetPatients->fetchAll();
$i = 0;
foreach($getPatientsResult as $result)
{
$res[$i] = $result;
$i++;
}
echo json_encode($res);
?>
和JavaScript部分是在这里:
<script>
$(function() {
$("#searchTxt").on('keyup', function(){
searchTxt = $("#searchTxt").val();
$.ajax({
url: '../php/autoComplete.php',
data: {searchTxt: searchTxt},
type: 'POST',
dataType: 'JSON',
success:function(resp)
{
$.each(resp, function(key, result)
{
var availableTags = result['patient_name_en'];
});
},
error:function(resp)
{
console.log(resp)
}
})
});
$("#searchTxt").autocomplete({
source: availableTags
});
});
</script>
我曾在关于jQuery的控制台以下错误:
Maximum call stack size exceeded.
但现在它不知何故,我不知道为什么。
现在在搜索文本框中键入后,我得到一个空数组在开发工具或阵列的网络选项卡,但没有属性,没有什么是显示为附近的文本框中自动完成:
编辑
我改了行PHP到:
$searchTxt = '%'.$_POST['searchTxt'].'%';
个
现在没有PHP的错误,但JavaScript错误:
Uncaught ReferenceError: availableTags is not defined
尝试在后端侧打印阵列并查看数组是否被填充。问题可能出现在您的SQL查询中。 –
我修正了它现在数据出现在网络选项卡,但我有以下错误,请参阅在一分钟内编辑 – droidnation
看看这里[如何从自动完成获取价值](https://stackoverflow.com/questions/4815330/jquery-ui-autocomplete-with-item-and-id) –