【发布时间】:2018-02-10 05:47:52
【问题描述】:
我有一个 php 和 SQL 代码,用于将数据提取到带有 input 的 datalist HTML 中。
代码相当通用,每个人都应该知道:
<datalist id="FindPlace">
<option hidden></option>
<?php
$sql = "SELECT IDPlace, Place_Name, FKCity FROM Places WHERE Place_Name <> '' ORDER BY Place_Name";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<option>" . $row["Place_Name"] . "</option>";
}
}
?>
</datalist>
我尝试使用LIMIT,但它隐藏了所有其他结果,我需要让它们全部可用,只是当我点击input时没有显示所有内容,但只显示前10个选项。
我还尝试在while和echo之间的php代码中插入$counter之类的内容,如下所示:
<?php
$sql = "SELECT IDPlace, Place_Name, FKCity FROM Places WHERE Place_Name <> ''
ORDER BY Place_Name";
$counter = 10;
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
if ($row < $counter) {
echo "<option>" . $row["Place_Name"] . "</option>";
}
else {
break;
}
}
}
?>
但它没有用。我真的不知道如何使用JQuery,所以最好不要使用它,也许有一个我不知道的命令,或者一些技巧?
【问题讨论】:
-
你可能要考虑下一个/上一个系统,因为如果你有很多地方,你会得到一个缓慢的页面,只有 10 个项目(访问者不关心隐藏的项目)跨度>
-
显而易见的答案是使用 css,但似乎没有办法对其进行样式设置。建议删除 datalist 并使用自动完成插件。 stackoverflow.com/questions/13693482/…