$ID= $_GET['id'];
<form method="post" action="updateorder.php?id=?"<?php echo htmlspecialchars($ID);?>">
我正在使用 PHP,我可以将 ID 从 index.php 传递到此页面 (openorders)。我想从这个 (openorders.php) 转到另一个页面来更新我的订单 - updateorder.php。我已经找到了如何通过它一次,但之后就再也没有了。你会怎么做?谢谢。
最佳答案
如前所述,使用 session 和作为示例。
旁注:请引用我在下面关于?id=?"
的“编辑”。
- 将 session 数组分配给 GET 数组,然后为后续页面使用相同的 session 数组。
变量名并不重要,重要的是 session 数组。
首先从您将检索 GET 数组的页面开始:
session_start();
if(!empty($_GET['id'])){
$ID = $_GET['id'];
}
$_SESSION['id'] = $_GET['id'];
$var_page1 = $_SESSION['id'];
echo "ID #: " . $var_page1;
然后在下一页:
session_start();
if(isset($_SESSION['id'])){
$var_page2 = $_SESSION['id'];
echo "ID #: " . $var_page2;
}
以及随后的页面:
session_start();
if(isset($_SESSION['id'])){
$var_page3 = $_SESSION['id'];
echo "ID #: " . $var_page3;
}
引用资料:
旁注:如果您的 GET 数组始终是整数,您可以将 (int)
传递给它以获得更多保护。
$ID = (int)$_GET['id'];
引用:
编辑:(我在测试时注意到的)- 我以 123
为例,是:
$_GET['id'] = 123;
$ID = (int)$_GET['id'];
由于 ?id=?"
,您的表单需要调整。(额外的 ?
和引号)。
<form method="post" action="updateorder.php?id=?"<?php echo htmlspecialchars($ID);?>">
^^ extra question mark and quote - delete it
因为这将转换为以下内容(以及 HTML 源代码),即 ?
并添加一个额外的引号,这是您不想要的并且会让您失望。
<form method="post" action="updateorder.php?id=?"123">
需要更改为以下内容:
<form method="post" action="updateorder.php?id=<?php echo htmlspecialchars($ID);?>">
这将在 HTML 源代码中生成以下内容:
<form method="post" action="updateorder.php?id=123">
关于php - 如何将 PHP 对象从一个页面传递到下一个页面两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34624382/