【问题标题】:Passing two variables in route through javascript function in laravel通过laravel中的javascript函数在路由中传递两个变量
【发布时间】:2019-10-19 04:19:24
【问题描述】:

我正在尝试通过 java 脚本函数在路由中发送两个变量。 Javascript函数:

function bookmark()
{       
     var url = '{{ route("save_bookmark",":b_id",":p_no") }}';       
      url = url.replace(':b_id', book);
      url = url.replace(':p_no', count);
     document.location.href = url;

} 

book 和 count 变量已在脚本中定义。

当我通过这段代码只传递一个变量时,它工作正常,但是当我尝试传递另一个变量时,它给了我错误..

缺少 [Route: save_bookmark] [URI:save_bookmark/{b_id}/{p_no}] 的必需参数。

我的路线:

Route::get("save_bookmark/{b_id}/{p_no}",'BookmarkController@create')->name('save_bookmark');

有人知道发生了什么吗?

【问题讨论】:

  • 您的 blade 模板将在您的 javascript 甚至替换变量之前呈现并执行路由。
  • 那么正确的方法是什么?
  • route('save_bookmark', ['b_id' => ':b_id', 'p_no' => ':p_no']) Source
  • 这行得通!谢谢你

标签: javascript php laravel routes


【解决方案1】:

你仍然可以这样做!

javascript

function bookmark()
{       
     var url = '{{ route("save_bookmark",":b_id",":p_no") }}';       
      url1 = url.replace(':b_id', book);
      url2 = url.replace(':p_no', count);
     //document.location.href = url;
     document.href="https://example.com/save_bookmark/"+url1 +"/"+url2;
      or
     location.href="https://example.com/save_bookmark/"+url1 +"/"+url2;

} 

【讨论】:

    【解决方案2】:

    看起来不错: 试试看 =>

    let val1= "1122";
    let val2= "a1b2c3";
        var processUrl = '{{ url("/path/:param1/:param2") }}';
            processUrl = processUrl.replace(':param1', val1);
            processUrl = processUrl.replace(':param2', val2);
        document.location.href = processUrl;
    

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 2014-01-06
      • 2017-05-03
      • 2015-02-22
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多