2016-10-06 6 views
1

私はjavascriptの の代わりに、直接URLへのURLを渡すURL ::資産を使いたいのですがどのようにjQueryのでLaravelのURL ::資産を使用するか、JS

$("select#lang").css("background-image", 'url(http://pascha.org/img/' + $("select#lang").val() + '.png)'); 

私はこのような何かをしたいと思います:

$("select#lang").css("background-image", '{{ URL::asset('/images/flags/') }}' + $("select#lang").val() + '.png)'); 

しかし、これはもちろん動作せず、疑問が残っているかどうかは疑問です。この

$("select#lang").css("background-image", 'url(/images/flags/'+ $("select#lang").val() + '.png)'); 

答えて

3

よう

+1

jsは別途jsスクリプトではなく、ブレードファイルでなければなりません。ありがとう! – Tomasz

+0

あなたは大歓迎です! – haakym

0

てみてくださいなぜこの仕事をしませんの?

$("select#lang").css("background-image", 
    '{{ URL::asset('/images/flags/') }}' + $("select#lang").val() + '.png)'); 

これは、ブレードファイルと別のJSファイルの外側でこれを実行している場合にのみ機能します。私が何かを見逃していない限り?

別のJSファイルがある場合は、マークアップでJSファイルが宣言される前に、ブレードファイルにいくつかの「グローバル」変数を割り当てることができます。例えば

あなた-JS-file.jsで次に

<script> 
    // "global" vars, built using blade 
    var flagsUrl = '{{ URL::asset('/images/flags/') }}'; 
</script> 
<script src="your-js-file.js"></script> 

、あなたがこれを行うことができますが:

$("select#lang").css("background-image", 
    flagsUrl + $("select#lang").val() + '.png)'); 
0

それは(あなたのjavascriptファイルので、何かを動作しません。 js)はPHPによって解析されません。意味、PHPはphpコードのjavascriptファイルをチェックしません。

これらの間で変数を渡すことはできますが、最も簡単な方法は、あなたのビュー(ブレードファイル)にこのような何かを行うことです。あなたのJavaScriptで

<script type="text/javascript"> 
    var url = '{{ URL::asset('/images/flags/') }}' 
</script> 

、あなたは今、あなたが探している値でurlと呼ばれるグローバル変数を持って、あなたはあなたにそれを使用することができますjavacriptファイル:

$("select#lang").css("background-image", url + $("select#lang").val() + '.png)'); 
+0

var urlは引用符で囲む必要があります。 'var flagsUrl =' {URL :: asset( '/ images/flags /')}} ';' – Tomasz

+0

あなたはそうです!私の悪い! – flipjms

+0

最後にセミコロンと:) – Tomasz

関連する問題