从数据库填充数组时自动完成不起作用

时间:2016-06-13 19:14:59

标签: javascript php jquery autocomplete

我曾经像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);

?>

1 个答案:

答案 0 :(得分:1)

替换$ elements数组代码,如下所示。

$elements = array();
while($rowDB=mysqli_fetch_array($query)){
   // $elements[]="".$rowDB[0];
    $elements[]=$rowDB[0];
}