有没有一种方法可以将变量从一个php页面传递到另一个php页面?

时间:2019-09-20 00:29:56

标签: php html sql mamp hidden-field

我有一个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();

?>

What the first page looks like. Pressing the Approve/Decline button on a row should allow the user to select that row to be updated.

这是第二个文件“ 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>

This is what the update should look like, where the user can change the value of Payment Status, and press submit to change that value on the selected row.

第二页将成功加载,但是fineID不会从第一页传递到表单代码中。我期望我选择的行的fineID应该通过,因此我输入到文本字段中的值将在从第一页选择的行上更新。没有错误,按提交将退出页面(预期行为)而不进行更新。我希望第二个文件中的UPDATE查询在用户在第一页上选择的行上完成。

0 个答案:

没有答案