我们如何使用sqlite数据库和php在用户从数据库输入时获得自动完成选项



我正在尝试为phpdesktopchrome中的输入表单获取自动完成选项,该选项从数据库中获取数据,并在用户输入时表示附近的输入区域。我使用的数据库是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。首先使用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>

最新更新