我有一个SQL数据库,其中的表包含已支付罚款的列表。一个php页面从该表中选择元素并显示它们,并在每行的末尾添加了一个“批准/拒绝”按钮,用户可以按此按钮来编辑“ payStat”变量的值。我还具有一个隐藏值,该值应该将“ fineID”变量传递给第二页,以便使用相同的fineID完成对行的编辑。
第二个php页面应在一个隐藏字段中传递fineID值,该字段用于选择所选行进行编辑。用户可以在文本字段中为“ payStat”变量添加新值,以便他们批准或拒绝付款。但是,fineID不会传输到第二页,因此不会对该行进行更新。
我尝试在第一页中将“ fineID”作为隐藏变量传递,因此它将出现在第二页上以执行SQL查询。但是,fineID值将不会通过,并且我对该行的“ payStat”变量进行的任何更新都将无法工作。
这是第一个文件“ SelectPaidFines.php”的代码片段
include ("ConnectApt.php");
//Create query
$sqlEmp="SELECT * FROM FinePay;" ;
//Execute query
$result = $conn->query($sqlEmp) or die('Could not run query: '.$conn->error);
if ($result->num_rows > 0) {
// output data of each row
echo "<h2> List of Paid Fines </h2>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["fineID"]. "</td><td>". $row["cardOwner"]."</td><td>". $row["payStat"] ."</td><td>". "<form action='editPay.php' method='POST'> <input type='hidden' name='fineVal' value='<?= fineID; ?>'/> <input type='submit' name='btnSubmit' id='Submit' value='Approve/Decline'> </form>" ."</td></tr>"."<br>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
这是第二个文件“ editPay.php”的代码片段
<body>
<?php
include ("ConnectApt.php");
<form action="editPay.php" method="POST">
Payment Status: <input type="text" name="newPay" value = "Pending"><br />
<input type="hidden" name="fineVal" value="<?php $row['fineID'] ?>">
<input type="submit" value=" Approve Payment "/>
</form>
if( isset($_GET['fineVal']) )
{
$fineID = $_GET['fineVal'];
$res = mysql_query("SELECT * FROM finePay WHERE fineID='$id'");
$row = mysql_fetch_array($res);
}
if( isset($_POST['newPay']) )
{
$newPay = $_POST['newPay'];
$fineID = $_GET['fineID'];
$sql = "UPDATE finePay SET payStat ='$newPay' WHERE fineID ='$fineID'";
$result = $conn->query($sql) or die('Could not run query: '.$conn->error);
echo "<meta http-equiv='refresh' content='0;url=SelectPaidFines.php'>";
$conn->close();
}
?>
</body>
第二页将成功加载,但是fineID不会从第一页传递到表单代码中。我期望我选择的行的fineID应该通过,因此我输入到文本字段中的值将在从第一页选择的行上更新。没有错误,按提交将退出页面(预期行为)而不进行更新。我希望第二个文件中的UPDATE查询在用户在第一页上选择的行上完成。