通过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 和 Livewire:组件更改时如何执行 javascript 函数?
Laravel JavaScript 将数组从后端传递到 JavaScript 中的数组