javascript - 试图在 PHP 中搜索表
问题描述
我正在尝试在我的表中创建搜索。
我已经用已经加载的日期填充了表格,但是当我在搜索框中输入名称并按提交时,没有发生任何事情,页面只是重新加载并且没有任何反应。
这是代码,(我还需要对表数据都是外键的表做同样的事情。)
<?php // Include config file
include("$_SERVER[DOCUMENT_ROOT]/freddies/inc/config.php");
include("$_SERVER[DOCUMENT_ROOT]/freddies/inc/functions.php");
include("$_SERVER[DOCUMENT_ROOT]/freddies/inc/header.php");
$sql = "SELECT * FROM patient";
if (isset($_POST['searchform'])) {
$search_term = ($_POST['searchpat']);
$sql .= " WHERE fName LIKE '{$search_term}'";
$sql .= " OR sName LIKE '{$search_term}'";
$sql .= " OR addLineOne LIKE '{$search_term}'";
}
$query = mysqli_query($db, $sql) or die(mysql_error());
?>
<body>
<div class="container">
<?php include("$_SERVER[DOCUMENT_ROOT]/freddies/inc/logo.html"); ?>
<h2>List of Patients</h2>
<p>All Patients Registered with Freddies Medical:</p>
<form name="searchform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<div class="form-group">
<label>Search for Patient</label>
<input type="text" class="form-control" name="searchpat" required><br>
<input type="submit" class="btn btn-primary" name="search" value="Submit">
<span class="help-block"></span>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>First Name</th>
<th>Surname</th>
<th>Address</th>
<th>Phone</th>
<th>Email Address</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
$total = 0;
while ($row = mysqli_fetch_array($query))
{
echo '<tr>
<td>'.$row['fName'].'</td>
<td>'.$row['sName'].'</td>
<td>'.$row['addLineOne'].", ".$row['addCity'].", ".$row['addPostCode'].'</td>
<td>'.$row['phone'].'</td>
<td>'.$row['email'].'</td>
<td><a href="patprofile.php?id='.($row['patient_id']).'" class="btn btn-success pull-right btn-xs">View Patient</a></td>
<td><a href="delpat.php?id='.($row['patient_id']).'" class="btn btn-danger pull-right btn-xs">Delete</a></td>
</tr>';
$no++;
}?>
</tbody>
</table>
<a href="createpatient.php" class="btn btn-success pull-left">New Patient</a>
<a href="../" class="btn btn-info pull-right">Admin Area</a>
</div>
<div class="bottompadding"></div>
<?php include("$_SERVER[DOCUMENT_ROOT]/freddies/inc/footer.php"); ?>
</body>
</html>
解决方案
$_POST['searchform']
据我所知,不会设置,因为它是表单的名称而不是表单元素。更好地检查isset($_POST['search'])
:
if(isset($_POST['search'])) {
$search_term = $_POST['searchpat'];
$sql .= " WHERE fName LIKE '%".$search_term."%'"; // Using % wildcard will search for fields 'containing' searched string rather then 'exact matches'
$sql .= " OR sName LIKE '%".$search_term."%'";
$sql .= " OR addLineOne LIKE '%".$search_term."%'";
}
推荐阅读
- c# - .NET CORE 未选择 Partial - 默认的 Identity UI 布局需要部分视图
- javascript - 角度项目中的会话存储
- python - 带有附加参数的 Django 模型表单将无法验证
- sed - 如何在 sed 中转义字符串变量?
- python - 带有特殊字符的 Powershell /c (PsExec/EncodedCommand)
- properties - Python Kivy:如何将特定对象从屏幕 A 传输到屏幕 B?
- reactjs - 具有多个开关的反应路由器仅渲染第一个开关组件
- sql - 如何使用 SQL 中的 WHILE 循环对表进行子集化和打印?
- php - PHP:重用修改后的私有父方法的解决方法
- django - 如何获取在视图集中创建的实例,然后在响应中返回它?