首页 > 解决方案 > 使用选择下拉选项 Laravel 生成 ?filter[color]=2&filter[brand]=apple 等 url 参数

问题描述

嗨,在我的项目中,我想通过选择选项过滤产品,我有一些下拉选择选项:

首先是颜色,其次是品牌等。

我使用一种使用 elequentbuilder 的方法。在我的场景中,参数应该传递给像http://localhost:8000/news/search?filter[color]=red&filter[brand]=apple这样的控制器。

我的问题是实现此场景的最佳方法是什么,这意味着当我从选择下拉列表中选择品牌时,当我选择颜色下拉表单提交并在下一个请求中显示http://localhost:8000/news/search?filter[color]=red时表单提交并显示 http://localhost:8000/news/search?filter[color]=red&filter[brand]=apple等我只是在寻找一种像我说的那样生成 url 的方法。

标签: phplaravel

解决方案


看看 HTML5 JavaScript History API。有了它,您可以执行以下操作来修改浏览器 url:

<a href="javascript:push('http://myshop.com/books/123');">
    Book 123
</a> <br/>
<a href="javascript:push('http://myshop.com/apps/456');">
    App 456
</a>

<script>
function loadUrl(url) {
    console.log("loading data from url: " + url);
}

function push(url) {
    history.pushState(null, null, url);
    loadUrl(url);
}
<script>

取自这篇文章。


推荐阅读