php - 如何使用 html5 和 mysql 创建多个自动完成字段

标签 php mysql html autocomplete

我想创建一个简单的html输入页面来将数据输入到mysql数据库中以供以后使用。为了节省输入时间,我希望将一些字段作为自动完成字段。 我找到了一个脚本here调整一些值后,它看起来像这样

<?php
//connect to mysql database
$connection = mysqli_connect("localhost","user","password","autocomplete_test")
or die("Error " . mysqli_error($connection));

//fetch data from database
$sql = "select distinct First_Name from data";
$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));

?>
<!DOCTYPE html>
<html>
<head>
<title>Autocomplete Textbox in HTML5 PHP and MySQL</title>
</head>
<body>
<label for="fname">First Name</label>
<input type="text" list="firstname" autocomplete="off" id="fname">
<datalist id="firstname">
    <?php while($row = mysqli_fetch_array($result)) { ?>
        <option value="<?php echo $row['First_Name']; ?>"><?php echo $row['First_Name']; ?></option>
    <?php } ?>
</datalist>
<?php mysqli_close($connection); ?>
</body>
</html>   

这对于一个字段非常有效,但是当我尝试添加第二个字段时,我无法弄清楚如何使第二个字段也自动完成。在我的示例中,我想要第二个字段“Last_Name”。它位于数据库中,我可以使用 while 和 echo 调用 First_Name 和 Last_Name 的所有值,作为 html 部分之前内容的简单显示。 无论我尝试什么,我都会自动完成第一个字段或第二个字段,或者只是数据库中两个字段的第一个条目。 请帮忙。谢谢。

最佳答案

没有什么可以阻止您简单地查询数据库两次并输出两个输入:

<?php
//connect to mysql database
$connection = mysqli_connect("localhost","user","password","autocomplete_test")
or die("Error " . mysqli_error($connection));

//fetch data from database
$sql1 = "select distinct First_Name from data";
$result1 = mysqli_query($connection, $sql1) or die("Error " . mysqli_error($connection));
$sql2 = "select distinct Last_Name from data";
$result2 = mysqli_query($connection, $sql2) or die("Error " . mysqli_error($connection));

?>
<!DOCTYPE html>
<html>
<head>
<title>Autocomplete Textbox in HTML5 PHP and MySQL</title>
</head>
<body>
<label for="fname">First Name</label>
<input type="text" list="firstname" autocomplete="off" id="fname">
<datalist id="firstname">
    <?php while($row = mysqli_fetch_array($result1)) { ?>
        <option value="<?php echo $row['First_Name']; ?>"><?php echo $row['First_Name']; ?></option>
    <?php } ?>
</datalist>
<label for="lname">Last Name</label>
<input type="text" list="lastname" autocomplete="off" id="lname">
<datalist id="lastname">
    <?php while($row = mysqli_fetch_array($result2)) { ?>
        <option value="<?php echo $row['Last_Name']; ?>"><?php echo $row['Last_Name']; ?></option>
    <?php } ?>
</datalist>
<?php mysqli_close($connection); ?>
</body>
</html>  

关于php - 如何使用 html5 和 mysql 创建多个自动完成字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640263/

相关文章:

php - 从 HTML 表单到 PHP 页面的 URL 链接

mysql - 连接来自同一张表的结果

mysql - SQL 中的多张表还是一张巨型表?

mysql - MySQL 附近的正确语法

javascript - 在 jQuery 中连续滚动 Div

javascript - 如何从 javascript 打印 WordPress 简码

php - Laravel Eloquent 一对多

php - ArrayObject不适用于PHP 7.4中的end()

javascript - jQuery,必要时更新内容

javascript - 如何使用 Fabric.js 将本地磁盘中的多个图像添加到 Canvas ?