如何将获取查询字符串发送到下一页?我知道查询字符串应该是什么格式我只是不明白重定向到下一页的实际过程。
而不是像href
这样的东西,但你不必点击它就可以将查询字符串发送到下一页。
<?php
///receiving from page1 and storing as variable
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$city = $_POST['city'];
$state = $_POST['state'];
$age = $_POST['age'];
//quarry string with firstname and lastname
page3.php?firstname=<?php echo $firstname;?>&lastname=<?php echo $lastname;?>
答案 0 :(得分:1)
技术上,您可以使用2种可用选项。你是否应该使用它们是一个不同的故事。
获取请求
获取请求将涉及相同的原始表单,但不是method="post"
,而是执行此操作; method="get"
。这样做是将所有表单数据作为查询字符串添加到指定的操作URL。
然后获取数据,这与获取POST
数据的方式非常相似。
$varName = $_GET['name']
,其中name是表单中指定的名称。
这种方式很好,因为这意味着您无需处理POST
数据,然后再将其自动发送到另一个页面。
POST请求
您现有的代码目前正在使用POST
请求,这在某些情况下确实有意义,例如在通过GET
发送之前对其进行更改。
虽然如果你打算使用这种方法,这就是你需要做的。
header("location: $url");
,其中$url
是您要发送的GET
请求的变量。
<强> TL; DR 强>
您应该使用GET
请求而不是POST
请求,但这仍然可以实现。
就这样做吧;
<?php
if (isset($_POST['firstname']) && isset($_POST['lastname'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$city = $_POST['city'];
$state = $_POST['state'];
$age = $_POST['age'];
$url = "page3.php?firstname=".$firstname."&lastname=".$lastname;
header("location: $url");
}
?>