jQuery字符串连接不适用于Laravel

时间:2016-05-11 08:17:47

标签: jquery laravel variables concatenation

在我的代码中,我试图连接像我这样的jQuery变量

 user_username = $(this).parent().parent().children('td:nth-child(15)').text(); //value is m

但这有效

 $('#photo').attr('src', "{{ route('account.image', ['filename' => 'm.jpg']) }}"); // the image is showing

虽然这不是

 $('#photo').attr('src', "{{ route('account.image', ['filename' => '"+user_username+".jpg']) }}"); // the image is not showing

注意:我使用laravel

显示图像

问题是,当我提醒我的字符串时,它返回%22 + user_username +%22.jpg而不是m.jpg

2 个答案:

答案 0 :(得分:0)

我对laravel一无所知,但这行是一个特定于laravel的php模板标签:

{{ route('account.image', ['filename' => '"+user_username+".jpg']) }}

所以你的javascript var不是路由的一部分,因为它是PHP在运行时生成的。

我可能错了,但没有别的可能是理由。因此,您必须通过laravel设置文件名或在路径标记之外设置文件名。

编辑:尝试获取文件名为空的路由,并在laravel标记后合并文件名:

$('#photo').attr('src', "{{ route('account.image', ['filename' => '']) }}"+user_username+".jpg");

另一种解决方案(通过jQuery更改文件名):

$('#photo').attr('src', "{{ route('account.image', ['filename' => '"+user_username+".jpg']) }}");

var src = $('#photo').attr('src'); 
var path = src.substring(0,src.lastIndexOf('/'));

$('#photo').attr('src', path + '/' + user_username + '.jpg');

答案 1 :(得分:0)

你能这样做吗?

只需用你的替换你的src的行。

var path = "{{ route('account.image',['filename' => 'example']) }}";

$('#photo').attr('src', path.raplace('example', user_username+'.jpg'));