使用sqlite数据库和php从数据库中输入用户时,如何获得自动完成选项?

时间:2018-12-13 12:11:07

标签: php sqlite

我正在尝试为phpdesktop-chrome中的输入表单获取自动完成选项,该选项从数据库中获取数据并在用户输入时代表输入区域附近。我正在使用的数据库是sqlite3数据库。

HTML

<form action="actionpage.php" method="POST" class="register-form" id="register-form" autocomplete="on" >
    <label for="itemname"> Item Name</label>
    <input type="text" name="itemname" id="itemname" required placeholder="Enter item name">
    <input action="insertpage.php" type="submit" name="submit" value="Submit">
</form>

JS

<script>
    var items = [ <?php
        $result=$db->query("SELECT * FROM register WHERE itemname='$itemname'");
        while($row=$result->fetchArray(SQLITE3_ASSOC)) { 
            $item=$row['itemname'];
        } ?>
     ];
    autocomplete(document.getElementById("itemname"), items);
 </script>

1 个答案:

答案 0 :(得分:0)

使用我的代码,它将起作用
按照这两个步骤,您可以获得解决方案
 1.首先使用php函数
 2.然后使用JavaScript

PHP函数     

function pre_json($array,$view=false){
 if($view) echo '<pre>';
  echo json_encode($array, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT );
 if($view) echo '</pre>';
} 

function DBExecute($sql,$type){
  global $db;
  if($sql !='' && $type !=''){
    switch (strtolower($type) ){
      case 'select':
      $result = $db->query($sql);
      if($result){
        $resultSet = array();
        while($row = $result->fetch(PDO::FETCH_ASSOC)){
          $resultSet[] = $row;
        }
        return $resultSet;
      }else{
        echo 'Error in Selection Query <br>'.$sql.'<br>';
        $error = $db->errorInfo();
        echo '<strong>'.$error[2].'</strong>';
        exit();
      }
      break;

      default :
      return false;
    }
  } 
}

?>


脚本

<script> 
        <?php  
$sql = "SELECT * FROM `register` WHERE itemname='$itemname'";
$result = DBExecute($sql,'select');

?>
var json = <?=pre_json($result);?>;
  $("#itemname").autocomplete({
    source:json,
    minLength:0,
    select:function(event,ui) {
      event.preventDefault();
      // console.log(ui.item);
      $("#itemname").val(ui.item.itemname);

    }
  }).focus(function(event) {
    $(this).autocomplete("search");
  });
</script>


那么它将自动绑定到您的输入字段中

<form action="actionpage.php" method="POST" class="register-form" id="register-form" autocomplete="on" > 
    <label for="itemname"> Item Name</label> 
    <input type="text" name="itemname" id="itemname" required placeholder="Enter item name"> 
    <input action="insertpage.php" type="submit" name="submit" value="Submit">
</form>