在路线中使用js函数变量

时间:2017-02-04 16:27:09

标签: javascript ajax laravel laravel-routing

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

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

它表示使用未定义的常量id。 我如何使用javascript变量传递路径?

3 个答案:

答案 0 :(得分:2)

你可以试试这个。

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

答案 1 :(得分:1)

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

您有以下选择:

  1. 您可以使用route parameters
  2. 代替request parameters
  3. 如果你真的想使用路由参数,你必须在JS代码中存储路由(例如,如果路由是http://www.example.com/routename/{menu_id},你可以将路由变量存储为绝对URL,如下所示:{{ 1}}或者像这样的相对网址:var route = http://www.example.com/routename/然后在ajax请求中添加路由参数,如此var route = /routename/

答案 2 :(得分:1)

我认为你可以这样做:

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