【发布时间】:2016-03-15 14:12:16
【问题描述】:
我正在使用表单在数据库中搜索,我想知道如何在同一页面上的表格中显示搜索结果(页面可以刷新,我不介意)。
我的表单如下所示:
<form id="searchform" method="post" action = 'search4.php' target = '_blank'>
<input id="name" style="height: 25px; width: 140px; position: fixed; top: 150px; left: 50px" name="name" type="text" >
<input type="submit" value="Search" class="btn btn-primary btn" style="color: white; font-style: normal; background-color: blueviolet; position: fixed; top: 148px; left: 220px">
</form>
search4.php 是在数据库中进行搜索的脚本,如下所示:
<?php
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'official_db';
$mysqli = new mysqli($servername, $username, null, $dbname);
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
if (!get_magic_quotes_gpc() ) {
$Name = addslashes($_POST['name']);
} else {
$Name = $_POST['name'];
}
session_start();
$results = "SELECT * FROM b2b_interfaces WHERE Name LIKE CONCAT ('%', $name, '%')";
$resultSet = $mysqli->query($results);
$numRows = $resultSet->num_rows;
if ($numRows > 0) {
while ($row = $resultSet->fetch_object()) {
echo "{$row->name} {$row->address} {$row->county} <br>";
}
} else {
echo "No Results";
}
?>
在主脚本中,我还定义了一个表,但我不知道如何访问 search4.php 的结果。我会尝试这样的事情:
<tbody>
<?php
if ($numRows > 0) {
while ($row = $resultSet->fetch_object()) {
?>
<tr>
<td><?php echo "{$row->name} " ?></td>
<td><?php echo "{$row->address} " ?></td>
<td><?php echo "{$row->county} " ?></td>
</tr>
<?php
}
}
?>
</tbody>
【问题讨论】:
-
看起来正确,有什么问题?
-
“在同一页面上显示搜索结果” - 好吧,在使用条件语句时摆脱第一个
target = '_blank'。和action = 'search4.php'=>action = '' -
您只需将您的表格代码(您提供的最后一个块)放在您当前在第二个块中拥有
echo "{$row->name} {$row->address} {$row->county} <br>";的位置。您必须进行一些调整才能显示所有标签,但我认为您的一般操作没有任何问题。我可能会遗漏一些东西。 -
@Fred -ii- : 如果我创建
action='',那么我的脚本将如何被调用?本来想把search4.php的所有内容都放到表单里,不知道怎么弄。 -
将整个代码放在同一页面上。如果没有,那么您将需要使用 ajax