【问题标题】:Append form variables to existing query string将表单变量附加到现有查询字符串
【发布时间】:2015-04-13 16:54:44
【问题描述】:

我正在开发的应用中有一个简单的订购单:

{{ Form::open(array('route' => 'get.index', 'method' => 'get')) }}
                {{ Form::label('order', 'Order by') }}
                {{ Form::select('order' , array('firstname' => 'First Name', 'lastname' => 'Last Name', 'state' => 'State')) }}
                {{ Form::submit('Order results') }}
            {{ Form::close() }}

我想将 order GET 变量附加到查询字符串中的变量(如果存在),而不是覆盖所有内容。

这有可能吗?

【问题讨论】:

  • 您可以将其他 GET 变量作为隐藏字段添加到表单中以重新发送它们。关于我们谈论的其他变量是什么?
  • 您还可以设置表单的操作(但是您在“表单”中执行此操作)以包含当前查询字符串 ($_SERVER['QUERY_STRING']),并且浏览器将附加新值。
  • @JonathanKuhn 我可以在路线选项旁边添加一个动作吗?我更喜欢将路线作为动作。
  • @lukasgeiter 还有一些其他可能的变量,总共 7 个。不过,它们中的大多数都是可选的,因此不仅必须将其附加到其他 7 个变量。
  • 我不知道,我不使用 laravel。我只是建议它,因为这就是您使用常规形式的方式。

标签: php forms laravel blade


【解决方案1】:

正如@JonathanKuhn 提到的,$_SERVER['QUERY_STRING'] 保存当前的查询字符串。您也可以使用Request::server('QUERY_STRING') 检索它。

然后将其用作操作。您将不得不使用url,但在其中您可以再次使用route() 函数来生成网址:

{{ Form::open(array('url' => route('get.index') . '?' . Request::server('QUERY_STRING'), 'method' => 'get')) }}

【讨论】:

  • 我不知道 laravel,但是您需要将 ? 包含在串联路由中吗?因为它不会包含在查询字符串中。
  • @JonathanKuhn 是的,谢谢。我有一种感觉我错过了一些东西;)
猜你喜欢
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 2016-07-14
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多