【问题标题】:Display search results on the same page in a table with PHP使用 PHP 在表格的同一页面上显示搜索结果
【发布时间】: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-&gt;name} {$row-&gt;address} {$row-&gt;county} &lt;br&gt;"; 的位置。您必须进行一些调整才能显示所有标签,但我认为您的一般操作没有任何问题。我可能会遗漏一些东西。
  • @Fred -ii- : 如果我创建action='',那么我的脚本将如何被调用?本来想把search4.php的所有内容都放到表单里,不知道怎么弄。
  • 将整个代码放在同一页面上。如果没有,那么您将需要使用 ajax

标签: php html search


【解决方案1】:

您可以将搜索脚本放在同一页面上,因此将搜索表单定位到当前页面,并将脚本放在页面顶部。

【讨论】:

  • 我按照你说的做了,搜索成功了,它在页面右侧的表格中很好地显示了结果,只是第一次显示页面时,我收到一个错误: ( ! ) Notice: Undefined index: name in C:\wamp\www\search.php on line 并在表格中显示所有数据库行。你可以在这里看到我的代码:pastebin.com/qiKAG5Xa
  • 太棒了!啊,那是因为它正在寻找名称的发布值,但你还没有发布它,你应该在你的 php 代码之上添加: if($_POST['name']) { your code } else { } (请如果解决了您的问题,请支持我的评论,并标记为解决方案)
  • 好的,所以我添加了 if($_POST['name']) {all code here until
    ..where table description is finished } else {I put form definition again} .我一定是做错了什么,因为我仍然看到那个错误。
  • 您的代码仍然存在同样的错误。没问题,我找到了解决方法。不过谢谢!
  • 猜你喜欢
    • 2016-06-25
    • 2021-08-13
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2015-06-23
    相关资源
    最近更新 更多