【问题标题】:Show first 10 results, hide the rest? [duplicate]显示前 10 个结果,隐藏其余的? [复制]
【发布时间】:2018-02-10 05:47:52
【问题描述】:

我有一个 php 和 SQL 代码,用于将数据提取到带有 inputdatalist 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个选项。

我还尝试在whileecho之间的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/…

标签: php jquery sql


【解决方案1】:

您可以使用 css 解决此问题。试试下面的代码。这是一些相关的小提琴检查:click here

 
.wrapper option:nth-child(n+11){
  background-color: gold;
  display:none;
}
<div class="wrapper">
    
    <option>Container #1</option>
    <option>Container #2</option>
    <option>Container #3</option>
    <option>Container #4</option>
    <option>Container #5</option>
    <option>Container #6</option>
    <option>Container #7</option>
    <option>Container #8</option>
    <option>Container #9</option>
    <option>Container #10</option>
    <option>Container #11</option>
    <option>Container #12</option>
    
</div>

【讨论】:

  • css 不起作用。显示所有选项,而不是前 10 个。
  • 美丽的......没有意识到这种可能性
  • @Zabusy,你想要这样的东西吗?
  • @chiragsatapara 是的,这个想法是这样的,尽管如果我在datalistinput 中写下隐藏的约束器的名字,它们应该仍然可以访问
  • 你的 sn-p 没有使用datalist。您不能在数据列表上使用 css。
【解决方案2】:

试试这个 -

$result = $conn->query($sql);
if ($result->num_rows > 0) {
    $i=0;
    while ($row = $result->fetch_assoc()) {
        $i++;
        if ($i<=10) {
            echo "<option>" . $row["Place_Name"] . "</option>";
        } else {
            break;
        }
    }
}

【讨论】:

  • 试过了。也许问题是别的?现在在我的input 中,它没有显示任何内容,就像我的第二个示例一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 2022-09-23
  • 2020-10-25
相关资源
最近更新 更多