【问题标题】:Why $_GET is not getting data from a different page?为什么 $_GET 没有从不同的页面获取数据?
【发布时间】:2019-02-19 13:35:12
【问题描述】:

我在一个页面中有一个表单,我在提交表单时重定向到另一个。我需要从另一个页面中的该表单中获取数据,但相反,我只获取新页面。

<form action='/busca' method="get">
   <input class='search__input' type='text' placeholder='Buscar por notícia' name='termo'>
</form>

然后在“busca”页面内:

    $resultados = 0;
    var_dump($_GET);
    if( isset($_GET['termo']) ) {
      $noticias = getNoticias()->rset;
      $resultados = array();
      $termo = $_GET['termo'];
      $counter = 0;
      foreach ($noticias as $id => $noticia) {
         if (strpos($noticia['titulo'], $termo) !== false) {
             $resultados[$counter]->titulo = $noticia['titulo'];
             $resultados[$counter]->id = $noticia['id'];
         }
      }
    }

当我在表单中输入“test”时,它会将我重定向到带有 URL http://localhost/escolas?termo=test 的页面 busca。但是我的代码没有得到这些数据。当我 var_dump $_GET 它给了我:

array(1) { ["params"]=> string(5) "busca" }

但我需要“termo”(在本例中为“test”)。

我能做什么?

【问题讨论】:

  • 你是如何提交表格的?
  • 连同您如何提交表单,通常 html 表单以 POST 变量结束,而不是 GET,因此请尝试检查 $_POST
  • 当用户按回车键时,它会转到“busca”页面。没有提交按钮我不能这样做?
  • 猜测,你有一些 url 重写正在进行,这把事情搞砸了。
  • 您是否尝试过将您的action="/busca" 更改为action="/busca.php" 之类的?据我所知,您必须准备文件的扩展名。如果不是,请提供应用程序的完整简化代码,这将有助于我们回答您的问题。 ;)

标签: php forms url get


【解决方案1】:

决定改用 POST。有用。

【讨论】:

  • 虽然使用 POST 可以解决您当前的问题,但它只是隐藏了您在其他地方遇到的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 2011-11-08
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
相关资源
最近更新 更多