【问题标题】:How to put javascript variable inside url() function?如何将 javascript 变量放入 url() 函数中?
【发布时间】:2019-07-09 06:22:23
【问题描述】:

我已经在我的代码上折腾了几个小时,但没有找到将 javascript 变量放入 laravel url() 的正确方法。每当我将变量作为参数放在 url() 中时,它就会被视为字符串。下面是我的代码。请帮忙。

javascript 文件

function generateSchedule( id, loan_type ){

          var txt_url;           

          if( loan_type == "Business" ){
            txt_url = 'addamortbusinessloan'; 
          }else{
            txt_url = 'addamortization';
          }


          $.post('{{ url("'+txt_url+'") }}', {'loanId':id}, function(data){


       },"json");

    }

这不起作用{{ url("'+txt_url+'") }}。我一直在扭曲引号的位置,但一点运气都没有。结果是http://localhost:8000/txt_url。我希望它是这样的http://localhost:8000/addamortbusinessloanhttp://localhost:8000/addamortization

【问题讨论】:

  • 在 laravel url() 中放置一个 javascript 变量。 你不能这样。我假设您上面的代码是一个 php 模板。但是generateSchedule 在浏览器中被调用。所以 txt_url 变量在 JavaScript 中根本不存在,这就是你的模板引擎呈现你看到的静态值的原因。

标签: javascript jquery laravel laravel-5.7


【解决方案1】:

你不需要把它放在逗号中,没有逗号也可以正常工作。检查这个

function generateSchedule( id, loan_type ){

          var txt_url;           

          if( loan_type == "Business" ){
            txt_url = "addamortbusinessloan"; 
          }else{
            txt_url = "addamortization";
          }

        var base_url="http://localhost:8000/"

        $.post( base_url+txt_url, {'loanId':id}, function( data ) {

         }, "json");

    }

【讨论】:

    【解决方案2】:

    使用这个刀片指令以简单的方式将变量导出到 JS:spatie/laravel-blade-javascript

    【讨论】:

      【解决方案3】:

      实际上你不能,但如果你需要,你可以像这样在你的 app.blade 文件中定义全局变量

      var BASE_URL='{{url('')}}'
      </script>
      

      或者您可以在 head 的元标记中定义它的另一种方式,如下所示: 在您的 javascript 文件中,您可以通过 jquery 获取它 $('meta[name=base_url]').attr('content')

      【讨论】:

        【解决方案4】:
        function generateSchedule( id, loan_type ){
        
            var txt_url;
        
            if( loan_type == "Business" ){
                txt_url = '/addamortbusinessloan';
            }else{
                txt_url = '/addamortization';
            }
        
            var url = "{{ url('') }}" + txt_url;
        
            console.log(url);
        
            $.post(url, {'loanId':id}, function(data){
        
        
            },"json");
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-28
          • 1970-01-01
          • 2012-04-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多