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

Posted

技术标签:

【中文标题】通过laravel中的javascript函数在路由中传递两个变量【英文标题】:Passing two variables in route through javascript function in laravel 【发布时间】: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 这行得通!谢谢你 【参考方案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;

【讨论】:

以上是关于通过laravel中的javascript函数在路由中传递两个变量的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中包含 php 文件的位置以及如何使用 javascript 调用 php 文件中的特定函数

Laravel Mix 未定义 JavaScript 函数

Laravel 和 Livewire:组件更改时如何执行 javascript 函数?

Laravel JavaScript 将数组从后端传递到 JavaScript 中的数组

将Javascript变量传递给laravel 5.3中的路由

$(...).bootstrapValidator 不是 Laravel 中的函数错误