在我的代码中,我试图连接像我这样的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
答案 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'));