php - 错误:- 未定义的变量:原始而在 2 页之间传输数据
问题描述
manageleavetype.php
下面的代码是我想将此页面表单内容重定向到下一个文件代码edit.php的第一个文件页面。我想从下一页更新数据。
<form action="" method="POST">
<tr>
<td><?php echo $type; ?></td>
<td><?php echo $des; ?></td>
<td><?php echo $time; ?></td>
<input type="hidden" name="hid" value="<?php echo $id; ?>">
<input type="hidden" name="htype" value="<?php echo $type; ?>">
<input type="hidden" name="hdes" value="<?php echo $des; ?>">
<td><input type="submit" name="del" value="DELETE">
<input type="submit" name="update" value="UPDATE">
</td></form></tr>
编辑.php
该文件除上述文件中的代码外,并更新接收到 MySQL 数据库的数据
<?php
require 'config.php';
if (isset($_POST['update'])) {
$eid = $_POST['hid'];
$que = "SELECT * FROM leavetype WHERE id='$eid'";
$exe = mysqli_query($conn, $que);
$raw = mysqli_fetch_array($exe);
}
if (isset($_POST['update'])) {
$nwtype = $_POST['ltype'];
$nwdes = $_POST['ldes'];
$que = "UPDATE leavetype SET leavetype='$nwtype',description='$nwdes' WHERE id='$eid'";
$exe = mysqli_query($conn, $que);
if ($exe) {
header("location:manageleavetype.php");
}
}
?>
<form method="POST">
<label>Leave Type</label>
<input type="text" name="ltype" value="<?php echo $raw['leavetype']; ?>">
<label>Description</label>
<input type="text" name="ldes" value="<?php echo $raw['description']; ?>">
<input type="submit" name="update" value="Update">
</form>
当我运行此程序时,出现以下错误:
注意:未定义变量:第 31 行 C:\wamp64\www\eLeaveSystem\edit.php 中的原始变量
解决方案
当您仅在块中定义变量时if
,您可能会遇到该错误。在您的情况下,您$raw
仅定义何时update
发布:
if (isset($_POST['update'])) {
$eid = $_POST['hid'];
$que = "SELECT * FROM leavetype WHERE id='$eid'";
$exe = mysqli_query($conn, $que);
$raw = mysqli_fetch_array($exe);
}
但是您可以在 HTML 生成部分无条件地访问该变量,如下所示:
<input type="text" name="ltype" value="<?php echo $raw['leavetype']; ?>">
所以你有几个选择:
将 HTML 生成部分也放在这样的
if
块中。然后,您需要在代码中添加另一部分,以便在没有update
发布时生成输出。为这些变量定义默认值。例如
$raw = ['leavetype' => 'something', 'description' => 'default description']
.
推荐阅读
- c++builder - 如何查询 TFDMemTable
- ios - iOS 15 - Xcode 13-RC 警告:-[NSKeyedUnarchiver validateAllowedClass:forKey:]
- python - 按索引连接数据框列表
- .net - 如何连续循环通过 DataGridView 行?
- javascript - Jest + Typescript 无法模拟 AWS 转录功能
- c++ - (操作数 1 < 操作数 2)的结果 || (~operand1 < 进位)
- powershell - 我正在尝试使用 powershell csom 从在线共享点中提取项目列表
- r - r:如果指标变量为 1,则将“*”添加到因子水平
- python - 尝试使用 np.where 屏蔽某些值
- javascript - 使用 JWT 密码策略时的 ensureLoggedIn 等效项是什么?