【问题标题】:Use js function variable in route在路由中使用js函数变量
【发布时间】:2017-06-21 21:54:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript ajax laravel laravel-routing


    【解决方案1】:

    无法在 PHP 中使用 javascript 变量,因为服务器端代码在客户端代码之前执行。因此,您可以将 JS 变量分配给相等的 PHP 变量,但不能反过来。看看这个:https://stackoverflow.com/a/2379251/7377984

    您有以下选择:

    1. 你可以用request parameters代替route 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

    【讨论】:

      【解决方案2】:

      我认为你可以这样做:

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

      【讨论】:

        【解决方案3】:

        你可以试试这个。

        $(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>
        

        【讨论】:

          猜你喜欢
          • 2020-06-03
          • 2015-12-20
          • 1970-01-01
          • 1970-01-01
          • 2014-01-06
          • 2021-09-12
          • 2020-05-26
          • 2013-08-09
          • 1970-01-01
          相关资源
          最近更新 更多