我正在使用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) –