如何将$_POST[';variable';]添加到下一页的URL


How to add $_POST['variable'] to URL of next page?

我有一个带有搜索栏和提交按钮的简单登录页。

我希望下一页的URL为:mysite.com/after_search.php?search=*the search text here*

以下是登录页/index.php页面的代码:

  <form class="" action="after_search.php?search="<?php echo $_POST['search_title']?> method="post">
    <div class="form-group" id="search_wrapper">
      <input type="text" id="search_field" class="form-control color-outline" name="search_title" placeholder="Search">

问题是在加载下一页之前,不会设置$_POST['search_title']。因此,它不起作用,因为此页面上没有定义$_POST['search_title']

如何将搜索栏的内容添加到下一页的URL?

编辑1

有人建议我切换到GET而不是POST。

但在第二页上,有很多地方使用$_POST〔'…'〕

将所有这些切换到$_GET["…"]使其能够工作。

谢谢,所有

您需要使用$_GET方法从URL:中获取值

<form class="" action="after_search.php" method="get">

要获取值,请使用:

$_GET['search']

如果您通过链接传递值:

?search=the search text here

这意味着您使用的是$_GET,因此需要使用$_GET而不是$_POST

您正在获取数据,因此使用GET方法,并且您希望在url GET方法中添加变量。

 <form class="" action="after_search.php" method="get">
  <div class="form-group" id="search_wrapper">
  <input type="text" id="search_field" class="form-control color-outline" name="search" placeholder="Search">

如果URL中有此search_title,则可以使用$_GET['search_title']。如果不是不可用,则使用默认值。类似的东西

action="after_search.php?search=<?php echo isset($_POST['search_title'])? $_POST['search_title']: ''?>"

在这里,我使用了一个空字符串()作为默认值。