通过Laravel中的javascript函数在路由中传递两个变量

时间:2019-06-03 15:19:21

标签: javascript php laravel routes

我正在尝试通过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');

有人知道发生了什么事吗?

2 个答案:

答案 0 :(得分: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;

} 

答案 1 :(得分:0)

看起来不错: 试试看 =>

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;