【发布时间】:2015-07-22 12:46:59
【问题描述】:
如何在 HTML 页面中的表单中进行搜索,并在同一个 html 页面中显示结果?当我尝试运行未定义 inputPackageID 的代码时出现错误。我怎样才能解决这个问题。似乎无法从表单中识别该变量。请帮忙
这是我的代码。如果你不明白我的问题,你可以问我你不清楚的地方。
<div class="main">
<div class="col-md-12">
<div class="row">
<div class="container">
</div>
<div class="search center-block col-md-6" align="center">
<p>
Want to track your package? <br />
Enter your Package ID(PID)
</p>
<form method="post" action="trackShipment.php">
<div class="form-group">
<label class="sr-only" for="inputPackageID"></label>
<input type="search" name="inputPackageID" class="form-control edit-form-control" id="inputPackageID" placeholder="PID">
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-primary" name="submit" />
</div>
</form>
</div>
<div class="col-md-8" align="center">
<h2>Well, Here is your package!</h2>
<?php
include '../includes/connection.php';
//include 'phpscripts/trackShipment.php';
$PackageID = $_GET['inputPackageID'];
$sql = "select * from package where p_id='$PackageID'";
?>
<table class="table table-striped">
<tr>
<th><span>PID</span></th>
<th><span>Customer ID</span></th>
<th>Name</th>
<th>Description</th>
<th>Destination Per KM</th>
<th>Type</th>
<th>Price/KG</th>
</tr>
</th>
<?php
foreach ($db->query($sql) as $count)?>
<tr>
<td>
<?php echo $count['p_ID']; ?>
</td>
<td>
<?php echo $count['cus_ID']; ?>
</td>
<td>
<?php echo $count['package_name']; ?>
</td>
<td>
<?php echo $count['package_description']; ?>
</td>
<td>
<?php echo $count['package_type']; ?>
</td>
<td>
<?php echo $count['destination_per_km']; ?>
</td>
<td>
<?php echo $count['price_per_kg']; ?>
</td>
<?php } ?>
</table>
</div>
</div>
【问题讨论】:
-
您发布代码的页面是否名为“trackShipment.php”?如果是这样,那么它应该提交给自己。但是,您的标题问题与正文中的问题不匹配。在标题中您询问“如何在数据库中搜索特定行”,但在正文中您询问如何使搜索表单在同一页面上显示结果。这是两个不同的问题。你能澄清一下吗?
-
您容易受到sql injection attacks 的攻击。并且变量无法识别,因为您第一次点击此表单的页面时,网址中没有
?inputPackageID=xxx。 -
@Beems 对此感到抱歉。我在这里度过了漫长的一天,而且很晚了。我正在尝试解决问题主体中的内容。 trackShipment.php 是另一个 php 文件,不是当前正在处理的页面。
-
<form method="post" action="trackShipment.php">然后使用action=""如果您想在同一页面或 Ajax 上获得结果,如下面的回答中所述。如果这不能解决它,并且我在回答中解释了它是未定义的,那么我将简单地删除它。 @WillieMwewa