我正在尝试调用要编辑的旧值。我错了什么地方?
<?php
if (isset($_GET['edit'])) {
$id = $_GET['edit'];
$update = true;
$record = mysqli_query($db, "SELECT * FROM bookinfo WHERE BookNo='$BookNo'");
if (mysqli_num_rows($record) == 1 ) {
$n = mysqli_fetch_array($record);
$BookNo = $n['BookNo'];
$ISBN = $n['ISBN'];
$title = $n['title'];
$author = $n['author'];
$publisher = $n['publisher'];
$status = $n['status'];
$cost = $n['cost'];
}
}
?>
<a href="viewBook.php?edit=<?php echo $row['BookNo']; ?>" class="edit_btn" >Edit</a>
</td>
<?php
if (isset($_GET['edit'])) { ?>
<form method="post" action = "viewBook.php">
<input type="hidden" name="BookNo" value="<?php echo $BookNo; ?>">
<input type="text" name="ISBN" value="<?php echo $ISBN; ?>">
<input type="text" name="title" value="<?php echo $title; ?>">
<input type="text" name="author" value="<?php echo $author; ?>">
<input type="text" name="publisher" value="<?php echo $publisher; ?>">
<input type="text" name="status" value="<?php echo $status; ?>">
<input type="text" name="cost" value="<?php echo $cost; ?>">
<?php if ($update == true): ?>
<button class="btn" type="submit" name="update" style="background: #556B2F;" >update</button>
<?php else: ?>
<button class="btn" type="submit" name="save" >Save</button>
<?php endif ?>
<?php } ?>
</form>
到目前为止,它的作用是,当用户单击编辑按钮时,它仅显示6个文本字段。我以为通过执行该操作,可以显示出文本框中已经填充的详细信息。
答案 0 :(得分:1)
完成时
$record = mysqli_query($db, "SELECT * FROM bookinfo WHERE BookNo='$BookNo'");
未定义$ BookNo。
也许您想做这样的事情:
$id = $_GET['edit'];
$update = true;
$record = mysqli_query($db, "SELECT * FROM bookinfo WHERE BookNo='$id'");
答案 1 :(得分:0)
<form method="post" action = "viewBook.php">
您的表单方法是“ post”,但是您要检查$ _GET您必须检查$ _POST
if (isset($_GET['edit']))
答案 2 :(得分:0)
您正在$id
中传递值,并使用$BookNo
(未定义)。
仅显示6个输入字段,因为第一个使用的是隐藏属性。
<input type="hidden" name="BookNo" value="<?php echo $BookNo; ?>">
当您单击“提交”按钮时,数据将通过$ _POST接收