我有一个搜索表单,并在与搜索表单相同的页面上显示结果。因此,在进行搜索之前,所有可能的结果都是可见的。在表单中输入关键字后,结果只会包含关键字。我希望表单显示在显示结果时输入到表单中的关键字。我尝试了很多东西,我最近的尝试是进入表格的各个部分,但没有运气。我搜索了多个教程网站,但没有找到要解决的特定请求。你能否帮助我在显示结果时让搜索条件保留在搜索框中?这是我正在使用的代码:
<html>
<body>
<?php error_reporting (E_ALL ^ E_NOTICE); ?>
<?php
function getRecords($query) {
$con = mysql_connect("localhost", "movie", "moviepw");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("movies", $con);
$result = mysql_query($query);
return $result;
}
function buildQuery() {
$keyword = $_GET['keyword'];
$sql = "SELECT * from table1 WHERE (movie_title LIKE '%$keyword%'
OR movie_description LIKE '%$keyword%')";
return $sql;
} ?>
<form action="movie_form.php" method=get>
<fieldset>
<legend>Movies</legend>
<label for="keyword">Search</label>
<input id="keyword" name="keyword" />
<input type=submit name=submit value=Search />
<? echo $keyword ?>
</fieldset>
</form>
<?
$query = buildQuery();
$records = getRecords($query);
while($row = mysql_fetch_array($records)){ ?>
<table>
<tbody>
<table border='1'>
<tr>
<td><?= $row['movie_title']; ?></td>
<td><?= $row['movie_rating']; ?></td>
<td><img src="<?= $row['movie_image'];?>"></td>
<td><?= $row['movie_description']; ?></td>
<td><a href="movie_form.php">Return to Search</a></td>
</tr>
<? } ?>
</tbody>
</table>
</body>
</html>
答案 0 :(得分:0)
将“value”属性添加到“关键字”表单输入中。像这样:
<input id="keyword" name="keyword" value="<?php echo "$keyword"; ?>"/>
此外,将$ keyword的设置移出buildQuery()方法,以便在输出表单时可用。你可以在设置error_reporting之后把它放好:
<?php error_reporting (E_ALL ^ E_NOTICE);
$keyword = rtrim($_GET['keyword']);
?>
最后,这段代码容易受到sql注入攻击。看一下这个: How can I prevent SQL injection in PHP?