实时搜索结果显示在新页面上
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>
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" />
因此,当您通过表单发送时,您的输入字段将通过名称“名称”发送,因为您已经双重声明了它的名称。它将回退到您为元素提供的最后一个“名称”属性。
【讨论】:
以上是关于实时搜索结果显示在新页面上的主要内容,如果未能解决你的问题,请参考以下文章
Ajax/jquery 结果不显示在 iframe 中。改为在新页面中显示