'Passing two variables in route through javascript function in laravel

I am trying to send two variables in route through java script function. Javascript function:

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 and count variables have been defined up in script.

When I pass only one variable through this code, it works fine but when I try to pass another variable it gives me error..

Missing required parameters for [Route: save_bookmark] [URI:save_bookmark/{b_id}/{p_no}].

My route:

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

Do anyone know what's happening?



Solution 1:[1]

you can still do it this way!

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;

} 

Solution 2:[2]

Looks Good: try it =>

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;

Solution 3:[3]

Works for me

function bookmark()
{
  var book = 1; var count = 2;
  var url = '{{ route("save_bookmark",[":b_id",":p_no"]) }}';
  url = url.replace(':b_id', book);
  url = url.replace(':p_no', count);
  console.log(url);
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Julius Fasema
Solution 2 Maizied Hasan Shuvo
Solution 3