我有这样的 MySQL 数据库表:
Id Value
1 Etc1
2 Etc2
3 Etc3
4 Etc4
我需要像这样动态填充上表中的数据来实现 HTML 列表:
<select>
<option value="1">Etc1</option>
<option value="2">Etc2</option>
<option value="3">Etc3</option>
<option value="4">Etc4</option>
</select>
使用 PHP 我可以做类似的事情:
$sql = "SELECT Id, Value FROM Tbl";
$result = mysql_query($sql);
echo "<select>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['Id'] ."'>" . $row['Value'] ."</option>";
}
echo "</select>";
但在这种情况下我不能使用 HTML 扩展,这意味着我的网站地址将是这样的:
www.mysite.com/something/index.php
代替:
www.mysite.com/something/
也许这听起来很傻,但让用户访问 PHP 文件是一种很好的做法吗?我认为更好的方法是当用户重定向到 HTML 文件时。 (我不知道重定向到 PHP 文件是否有任何真正的缺点,但是当重定向到 HTML 文件时看起来更好 .../something/
而不是 .../something/index.php
)
或者我应该在不访问数据库的情况下手动编写 HTML 下拉列表吗?
请提供正确的方法。
最佳答案
从安全的角度来看,让用户访问 PHP 文件并不是一个坏习惯。
删除扩展名可能更漂亮,但这与安全性无关。即使您通过 .htaccess 重写 url,或者如果您通过 Ajax 获取值,正如两者都被建议的那样,您仍然可以访问 PHP 文件。
唯一的区别是外观——如果这对你很重要,隐藏扩展,但你仍然可以访问 PHP 文件——如果你想通过 PHP 获取选项值(这没什么不好),没有办法绕过它.
关于php - 如何使用数据库中的值制作 HTML 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43753387/