我曾经像1年前一样使用过这种代码,但它确实有效。 现在我遇到了php代码的问题,当我用数据库中的元素填充我的数组时我不能做自动完成,但是当我评论我从代码中获取代码的部分时数据库并取消注释// $ elements = array(“25qt”,“45tr”,“az12”);比自动完成工作。 当我单独打开php文件并执行var_dump($ elements)时,看起来数组是从数据库正确填充的原因;我相应地得到了数组的内容。知道为什么当我从db填充数组时它不工作但是如果我使用像$ elements = array(“25qt”,“45tr”,“az12”)的数组那样它可以工作。
HTML code:
<input id="tegjithepjeset" type="text" class="form-control">
jQuery代码:
<script type="text/javascript">
$(document).ready(function(){
$("#tegjithepjeset").autocomplete({
source:'allParts.php',
minLength:1
});
});
</script>
Php代码:
<?php
// An empty array:
$data = array();
// Create connection
include 'dbinfo.php';
$con=@mysqli_connect("$host","$user","$password","$db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$queryString = "SELECT code FROM ".$table;
$query =mysqli_query($con,$queryString);
$elements = array();
while($rowDB=mysqli_fetch_array($query)){
$elements[]="".$rowDB[0];
}
//var_dump($elements);
//$elements = array("25qt", "45tr", "az12");
//Loop through the array to find matches:
foreach ($elements as $elm) {
// Add matches to the $data array:
if (stripos($elm, $_GET['term']) !== false) $data[] = $elm;//here we fill our empty array with values
} // End of FOREACH.
// Return the data:
echo json_encode($data);
?>
答案 0 :(得分:1)
替换$ elements数组代码,如下所示。
$elements = array();
while($rowDB=mysqli_fetch_array($query)){
// $elements[]="".$rowDB[0];
$elements[]=$rowDB[0];
}