实时搜索结果显示在新页面上

Posted

技术标签:

【中文标题】实时搜索结果显示在新页面上【英文标题】:Live search results showing on new page 【发布时间】:2021-11-01 19:26:30 【问题描述】:

我希望有人可以帮助我,我有一个实时 Ajax Jquery 搜索栏。现在我的搜索栏显示不超过 5 个结果。我想要的是实时结果下方带有“更多结果”的按钮,如果您单击此按钮,您将转到一个新页面并查看您的所有搜索结果。

我尝试的是在行结果下方放置一个提交按钮,但随后他将结果的所有名称而不是输入中的文本放入搜索中。

php

    <form action="./s/" method="GET">
    <div class="searchbox">
        
        <!-- SEARCHBOX INPUT -->
        <input type="text" name="s" class="searchbox-input" placeholder="Search trough 1,000 games in our database.." name="name" />

        <div class="searchbox-line"></div>
        <div class="searchbox-icon">
            <input class="img-searchbox-icon" name="" value="" type="submit">
        </div>

        <div class="results"></div>

    </div>
    </form>

mysql

if(isset($_REQUEST["term"]))
    // Prepare a select statement
    $sql = "SELECT * FROM games WHERE name LIKE ? ORDER BY name LIMIT 5";
    
    if($stmt = mysqli_prepare($link, $sql))
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, "s", $param_term);
        
        // Set parameters
        $param_term = '%' . $_REQUEST["term"] . '%';
        
        // Attempt to execute the prepared statement
        if(mysqli_stmt_execute($stmt))
            $result = mysqli_stmt_get_result($stmt);
            
            // Check number of rows in the result set
            if(mysqli_num_rows($result) > 0)
                // Fetch result rows as an associative array
                while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
                    echo '<a href="' . $row["url"] . '">';
                    echo '<p class="results-name">' . $row["name"] . '</a></p>';

                    echo '<p class="results-platform">';
                    echo '<img class="platform" src="img/platform-icons/' . $row["platform1"] . '.png" />';
                    echo '<img class="platform" src="img/platform-icons/' . $row["platform2"] . '.png" />';
                    echo '<img class="platform" src="img/platform-icons/' . $row["platform3"] . '.png" />';
                    echo '<img class="platform" src="img/platform-icons/' . $row["platform4"] . '.png" />';
                    echo '<img class="platform" src="img/platform-icons/' . $row["platform5"] . '.png" />';
                    echo '<img class="platform" src="img/platform-icons/' . $row["platform6"] . '.png" />';
                    echo '</p>';
                
             else
                echo '<p class="results-gamename">No matches found</p>';
            
         else
            echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
        

【问题讨论】:

您能补充更多细节吗?此刻你的问题太模糊了。 亲爱的 Kay,我现在拥有的是,当您在搜索栏中输入 5 个结果时(实时结果)。现在我想在 5 个结果下方添加一个带有“显示更多结果”的文本或按钮。当您单击此按钮时,您将转到 search.php,在那里您将看到所有结果(超过 5 个,如果有超过 5 个)。我在“行”回显之后放置了一个提交按钮,但随后他将搜索所有结果名称,而不是我在输入框中输入的关键字。 【参考方案1】:

好的,我会试一试。在您的 html 文件(最初命名为“PHP”的文件)中,您已经声明了如下形式:

<form action="./s/" method="GET">

您为搜索输入提供了以下名称:

<input type="text" name="s" class="..." placeholder="..." name="name" />

因此,当您通过表单发送时,您的输入字段将通过名称“名称”发送,因为您已经双重声明了它的名称。它将回退到您为元素提供的最后一个“名称”属性。

【讨论】:

以上是关于实时搜索结果显示在新页面上的主要内容,如果未能解决你的问题,请参考以下文章

实时搜索在结果中添加 href

Ajax/jquery 结果不显示在 iframe 中。改为在新页面中显示

在新页面上加载列表的正确详细信息

通过 REST API 检索结果并将其显示在新活动的列表视图中(列表视图出现小问题)

什么时候应该在新标签/窗口中打开链接?

Drupal 实时搜索结果