【问题标题】:Search form query in URL在 URL 中搜索表单查询
【发布时间】:2016-06-23 04:12:53
【问题描述】:

我的搜索功能有一个常规的POST 表单。我目前有以下路线:

Route::post('/search', 'PostController@search');

我使用 jQuery/AJAX 获取表单数据:

$('form').on('submit', function(event)
{
    event.preventDefault();

    var form = $(this);

    $.ajax({
        url: '/search',
        type: 'post',
        data: form.serialize(),
        dataType: 'json',
        success: function(data)
        {
            //
        },
        error: function(data)
        {
            //
        }
    });
});

但是,当结果页面显示时,它只在 URL 中显示/search 而没有用户的查询,例如:

http://www.website.com/search

我想做的是像/search/{user query here}这样的事情,比如:

http://www.website.com/search/bob

基本上,我希望能够在 URL 中显示用户的查询。

我怎样才能做到这一点,我怎样才能安全地做到这一点?

【问题讨论】:

  • 尝试使用重定向,如return Redirect::route('search', array('user' => {some query here}));
  • 您可能希望运行 GET 查询而不是发布查询来实现此目的。我不认为这会改变当前的 URL。例如http://www.website.com/search?q=bob
  • @james 他应该使用带通配符的路由

标签: laravel laravel-5 laravel-5.2


【解决方案1】:

你有两个选择。

  1. 在不使用 jQuery 的情况下提交时,使用普通表单并以“user/{user_name}”形式执行操作。 为此添加一条这样的路线。

    Route::get('/search/{user_name}', 'PostController@show');

  2. 当你的 ajax 成功重定向到页面“user/{user_name}”

【讨论】:

    猜你喜欢
    • 2010-11-12
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 2017-07-14
    • 2015-01-14
    • 1970-01-01
    • 2016-10-04
    • 2011-07-24
    相关资源
    最近更新 更多