php - PHP更新记录按钮未将信息传递到另一个页面
问题描述
我试图在 php 上创建一个更新记录按钮,单击该按钮时,它会将您带到另一个页面,该页面仅显示按下更新按钮的患者的信息。我使用以下内容显示患者信息以及每个患者的更新按钮
病人.php
<?php
require_once 'includes/dbh.inc.php';
$result = mysqli_query($conn,"SELECT * FROM patientProfile ORDER BY patientLastName ASC");
echo "<table class=table table-striped table-sm>
<tr>
<th>Last Name</th>
<th>Name</th>
<th>Gender</th>
<th>Age</th>
<th>Medical Plan</th>
<th>Record Number</th>
<th></th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['patientLastName'] . "</td>";
echo "<td>" . $row['patientName'] . "</td>";
echo "<td>" . $row['patientGender'] . "</td>";
echo "<td>" . $row['patientAge'] . "</td>";
echo "<td>" . $row['medicalPlan'] . "</td>";
echo "<td>" . $row['patientID'] . "</td>";
echo "<td>" . '<form method="POST" action="patientEdit.php"><input type="hidden" name="pid" value="$row[patientID]"><input type="submit" name="submit_btn" value="Update"></form>' . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($conn);
?>
当我单击更新按钮时,我希望它带我到另一个页面,该页面具有以下代码
病人编辑.php
<?php
require_once 'includes/dbh.inc.php';
if (isset($_POST["submit_btn"])) {
$patient = $_POST["pid"];
$result = mysqli_query($conn,"SELECT * FROM patientProfile WHERE patientID = '$patient' ");
echo "<table class=table table-striped table-sm>
<tr>
<th>Record Number</th>
<th>Last Name</th>
<th>Name</th>
<th>Gender</th>
<th>Age</th>
<th>Email</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['patientID'] . "</td>";
echo "<td>" . $row['patientLastName'] . "</td>";
echo "<td>" . $row['patientName'] . "</td>";
echo "<td>" . $row['patientGender'] . "</td>";
echo "<td>" . $row['patientAge'] . "</td>";
echo "<td>" . '<input type="text" name="changeEmail" value="$row[email]">' . "</td>";
echo "</tr>";
}
echo "</table>";
}
mysqli_close($conn);
?>
我希望在此页面上仅显示单击更新按钮所在行的患者的信息,我还有一个文本框,我想在其中显示数据库中的当前电子邮件,以便他们可以更改如有必要,不确定这是否是正确的方法。
现在,该页面仅显示没有信息的表头,我尝试将“”放在患者 ID 上,如下所示,但没有结果。
<input type="hidden" name="pid" value="$row["patientID"]">
还尝试将PatientEdit.php上的查询更改为
$result = mysqli_query($conn,"SELECT * FROM patientProfile WHERE patientID LIKE '%$patient%'
而且,什么也没发生。
任何帮助将不胜感激,如果需要更多信息,我很乐意提供。
解决方案
改变这个:
echo "<td>" . '<form method="POST" action="patientEdit.php"><input type="hidden" name="pid" value="$row[patientID]"><input type="submit" name="submit_btn" value="Update"></form>' . "</td>";
对此:
echo "<td>" . '<form method="POST" action="patientEdit.php"><input type="hidden" name="pid" value="' . $row['patientID'] . '"><input type="submit" name="submit_btn" value="Update"></form>' . "</td>";
但是,如果您的“更新”按钮仅用于导航到编辑表单,则它可能只是一个链接 ( <a href="patientEdit.php?pid=YOUR_PATIENT_ID">
)。$_GET['pid']
然后,您改为读出patientEdit.php
。另请参阅何时使用 POST 以及何时使用 GET?.
初始错误背后的原因是变量不会在单引号字符串中展开。考虑以下内容来证明:
<?php
$row = ['patientID' => 123];
var_dump('$row[patientID]'); // string(15) "$row[patientID]"
var_dump('{$row[patientID]}'); // string(17) "{$row[patientID]}"
var_dump("$row[patientID]"); // string(3) "123"
var_dump("{$row['patientID']}"); // string(3) "123"
var_dump("{$row[patientID]}"); // Fatal error: Uncaught Error: Undefined constant "patientID"
推荐阅读
- php - 标签的 TCPDF 对齐问题
- javascript - 图片不刷新(discord.js)
- mongodb - 如何根据 Spark SQL 中的 DBRef 字段列表进行查询
- c++ - 如何使用 rs-485 和 QSerialPort 从 PC 在 Arduino 上编写
- protocol-buffers - 如何在 Protocol Buffers 中构建数据模型
- javascript - 如何使用 JavaScript 进行自定义选择
- java - 为什么实体类显示 pmd 警告“类被怀疑是数据类”
- apache-superset - Apache Superset / JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符
- php - 在加载 SQL 时更改游标
- apache-spark - PySpark Kafka - NoClassDefFound:org/apache/commons/pool2