如何将get查询字符串发送到下一页?我知道查询字符串的格式应该是什么,我只是不理解重定向到下一页的实际过程。
而不是像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;?>
从技术上讲,你可以使用两个可用的选项。你是否应该使用它们是另一回事。
GET请求
get请求将涉及相同的原始表单,但不是method="post"
,您将这样做;method="get"
。它的作用是将所有表单数据以查询字符串的形式添加到指定的action url中。
然后获取数据,它非常类似于您获取POST
数据的方式。
$varName = $_GET['name']
,其中name为表单中指定的名称。
这种方式很好,因为它意味着你不需要处理POST
数据,然后自动将其发送到另一个页面。
POST请求
您现有的代码目前正在使用POST
请求,这在某些情况下确实是有意义的,例如在通过GET
发送之前更改它。
如果你要使用这个方法,这就是你需要做的。
header("location: $url");
,其中$url
是您想要发送的GET
请求的变量。
TL;博士
您可能应该使用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");
}
?>