如何保持提交的URL ID?

时间:2017-03-28 12:03:09

标签: php html

当我点击提交时,数据会提交到数据库,但该书的网址ID会消失为---- book.php

我希望网址返回页面的ID,例如---- book.php中?ID = 3

是否可以将第一行保留为action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"并添加value="<?php echo $book_id ?>"

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    <input type="hidden" value="<?php echo $book_id ?>" name="book_id" />
    <p>Author: <input type="text" value="<?php echo $_SESSION['author']; ?>" name="author" id="author" readonly /></p>
    <p>Summary: <input type="text" name="summary" value="<?php echo $summary;?>" /></p>
    <p><input type="submit" name="submit" value="Submit" /></p>
    <input type="hidden" name="submitted" value="TRUE" />    
</form>

PHP代码:

if (isset($_GET['id'])) {
    $book_id = $_GET['id'];
}

5 个答案:

答案 0 :(得分:0)

请尝试以下代码:

// save values in DB

header('Location: book.php?id=' . $book_id);
exit;

答案 1 :(得分:0)

您发送POST表单但正在尝试检索GET值。另外,参数名为book_id,而不是id

使用$book_id = $_POST['book_id'];

由于同样的原因,

if (isset($_GET['id'])) {也没有工作。

答案 2 :(得分:0)

您可以使用以下任何一种:

PHP_SELF只返回网址。使用返回带查询字符串的URL的REQUEST_URI

<form method="post" action="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]);?>">

[你也可以省略动作值 - 具有相同的行为]

或者如果您只想要id,请使用:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) . "?id=" . $_GET['id'];?>">

注意:在必要时使用验证。我刚刚给了你一个主意。

答案 3 :(得分:0)

"id"

没有名称

如果您想获得图书ID:

if (isset($_POST['book_id'])) {
    $book_id = $_POST['book_id'];
}

OR 像这样修改HTML:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
   <input type="hidden" value="<?php echo $book_id ?>" name="id" />

   <p>Author: <input type="text" value="<?php echo $_SESSION['author']; ?>" name="author" id="author" readonly />
   </p>

   <p>Summary: <input type="text" name="summary" value="<?php echo $summary;?>" /></p>

   <p><input type="submit" name="submit" value="Submit" /></p>
   <input type="hidden" name="submitted" value="TRUE" />    
</form>

另一方面,如果您遇到POST问题,只需修改此第一行HTML:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) . "?id=" . echo $book_id; ?>">

答案 4 :(得分:0)

这是因为 $ _ SERVER [&#34; PHP_SELF&#34;] 仅包含网址。它不包含get查询。要解决问题,请将操作留空

e.g

<form method="post" action="">.....