繁体   English   中英

从 MySQL 数据库中获取数据到 HTML 下拉列表

[英]Fetching data from MySQL database to HTML dropdown list

我有一个 web 站点,其中包含一个 HTML 表单,在这种形式中,我有一个下拉列表,其中包含在公司工作的代理列表,我想从 MySQL 数据库中获取数据到此下拉列表,因此当您添加新代理时,他的名字将出现作为下拉列表中的一个选项。

<select name="agent" id="agent">
</select>  

为此,您需要遍历查询结果的每一行并将此信息用于每个下拉选项。 您应该能够很容易地调整下面的代码以满足您的需要。

// Assume $db is a PDO object
$query = $db->query("YOUR QUERY HERE"); // Run your query

echo '<select name="DROP DOWN NAME">'; // Open your drop down box

// Loop through the query results, outputing the options one by one
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
   echo '<option value="'.htmlspecialchars($row['something']).'">'.htmlspecialchars($row['something']).'</option>';
}

echo '</select>';// Close your drop down box
# here database details      
mysql_connect('hostname', 'username', 'password');
mysql_select_db('database-name');

$sql = "SELECT username FROM userregistraton";
$result = mysql_query($sql);

echo "<select name='username'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['username'] ."'>" . $row['username'] ."</option>";
}
echo "</select>";

# here username is the column of my table(userregistration)
# it works perfectly

您需要从数据库中获取所有行,然后遍历它们,为每一行显示一个新的<option> 注意使用htmlspecialchars()来避免 XSS。

$pdo = new \PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'user', 'password', [
    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
    \PDO::ATTR_EMULATE_PREPARES => false
]);

// Select all values from the table Agents
$stmt = $pdo->prepare("SELECT Id, Name FROM Agents");
$stmt->execute();

echo '<select name="agent" id="agent">';
// For each row from the DB display a new <option>
foreach ($stmt as $row) {
    // value attribute is optional if the value and the text is the same
    echo '<option value="'.htmlspecialchars($row['Id']).'">';
    echo htmlspecialchars($row['Name']); // The text to be displayed to the user
    echo '</option>';
}
echo '</select>';

如果要预选其中一个值,则需要将selected属性应用于<options>之一:

$selected = 'Somebody';

echo '<select name="agent" id="agent">';
foreach ($stmt as $row) {
    if ($selected === $row['Name']) {
        echo '<option value="'.htmlspecialchars($row['Id']).'" selected >';
    } else {
        echo '<option value="'.htmlspecialchars($row['Id']).'">';
    }
    echo htmlspecialchars($row['Name']);
    echo '</option>';
}
echo '</select>';

你问的很简单

  1. 对您的数据库执行查询以获取结果集或使用 API 获取结果集

  2. 使用 php 遍历结果集或简单的结果

  3. 在每次迭代中,只需将 output 格式化为一个元素

以下参考应该有所帮助

HTML 选项标签

从 MySQL 数据库获取数据

希望这可以帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM