将查询字符串发送到下一页

时间:2016-11-04 03:54:34

标签: php html

如何将获取查询字符串发送到下一页?我知道查询字符串应该是什么格式我只是不明白重定向到下一页的实际过程。

而不是像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;?>

1 个答案:

答案 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");
    }
?>