在路由中使用js函数变量

Use js function variable in route

我想通过 ajax 将 ID 传递到我的路线,但不能这样做:

function test(id){
   $('#items').DataTable({
      ajax: {
      url: '{!!  route('routename', ['menu_id' => id]) !!}',
          type: 'POST'
      },

它说使用未定义的常量 id。 我如何使用 javascript 变量通过路由?

无法在 PHP 中使用 javascript 变量,因为服务器端代码在客户端代码之前执行。所以你可以将 JS 变量分配给相等的 PHP 变量,而不是相反。看看这个:

您有以下选择:

  1. 而不是route parameters, you may use request parameters
  2. 如果你真的想使用路由参数,你必须将你的路由存储在你的 JS 代码中(例如,如果路由是 http://www.example.com/routename/{menu_id},你可以将路由变量存储为绝对变量 url 像这样:var route = http://www.example.com/routename/ 或作为亲戚 url 像这样:var route = /routename/ 然后在 ajax 请求中附加路由参数,像这样 url: route + id

我认为你可以做到:

function test(id){
   var Link = "{!! route('routename',['menu_id' => '']) !!}"+"/"+id;
   $('#items').DataTable({
      ajax: {
      url: Link,
      type: 'POST'
},

你可以试试这个。

$(document).on('click', '.clickClass', function () {

            var id=$(this).val();
            var action = "{{ URL::to('yourroutehere') }}/"+id;

            $(".hreflink").attr('href',action);
});

<a href="" class="hreflink">Action</a>