我不知道如何从我想要的项目中获取更新的ID。它是这样的。当我点击这个按钮
<button class="btn"><a href="bookUpdateUI.php?id=<?php echo urlencode($id);?>">Update<a />
我的页面会显示与所选项目的ID匹配的项目说明。在我的代码中,它无法识别id,而是显示已在db上列出的所有项目。它还给了我一个通知,未定义的索引。我做错了什么?我怎样才能做到这一点?
查询:
public function requestID($id,$table){
$q="SELECT * FROM $table WHERE id = :id";
$stmt = $this->con->prepare($q);
$stmt->execute(array(':id'=>$id));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
bookUpdateUI.php:
<?php
session_start();
include_once "../styles/header-menu-out.php";
include "dbconnection.php";
function __autoload($class){
include_once("../main/".$class.".php");}
$code = new codex;
try {
$books = $code->requestID($_POST['id'], "book_info");
$books = $code->showData("book_info");
}catch (PDOException $e)
{
echo $e->getMessage();
}
?>
<html>
<head></head>
<body>
<form action="bookUpdate.php" method="POST" id="edit_form">
<table>
<?php foreach ($books as $book_info):?>
<tr><td><input type="Hidden" name="id" value="<?php echo $book_info['id']; ?>"/></td></tr>
<tr><td>Title</td><td><input type="text" name="title" value="<?php echo $book_info['title']; ?>"/></td></tr>
<tr><td>Author</td><td><input type="text" name="author" value="<?php echo $book_info['author']; ?>"/></td></tr>
<tr><td>ISBN</td><td><input type="text" name="isbn" value="<?php echo $book_info['isbn']; ?>"/></td></tr>
<tr><td>Publisher</td><td><input type="text" name="publisher" value="<?php echo $book_info['publisher']; ?>"/></td></tr>
<tr><td>Language</td><td><input type="text" name="language" value="<?php echo $book_info['language']; ?>"/></td></tr>
<tr>
<td>Genre</td>
<td><select name="genre">
<option value="<?php echo $book_info['genre']; ?>"><?php echo $book_info['genre']; ?></option>
<option value="Non-Fiction">Non-Fiction</option>
<option value="Fiction">Fiction</option>
<option value="Educational">Educational</option>
<option value="Reserved">Reserved</option>
<option value="Instructional Materials">Instructional Materials</option>
</select>
</td>
</tr>
<tr><td>Quantity</td><td><input type="text" name="quantity" value="<?php echo $book_info['quantity']; ?>"/></td></tr>
<?php endforeach; ?>
<tr>
<td></td>
<td>
<input type="submit" value="Update" name="update"/>
<a href="../bookDeleteUI.php"><input type="button" value="Cancel"/></a></td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:3)
除了使用$books
变量做奇怪的事情之外,因为URL(与表单不同)不是POST,它不会出现在$ _POST超级全局变量中。 (相反,您必须使用$_GET
,或使用$_REQUEST
超级全局覆盖两个基地。)