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>
edit.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中的原始数据
答案 0 :(得分:1)
如果仅在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']
。
答案 1 :(得分:0)
您可以使用isset()函数来解决此问题,从而避免出现未定义的变量问题。
尝试以下方法:
<form method="POST">
<label>Leave Type</label>
<input type="text" name="ltype" value="<?php echo (isset($raw['leavetype']) ? $raw['leavetype'] : '');?>">
<label>Description</label>
<input type="text" name="ldes" value="<?php echo (isset($raw['description']) ? $raw['description'] : ''); ?>">
<input type="submit" name="update" value="Update">
</form>
我认为应该同时为“更新”和“插入”显示表单块。