我想用两个语言的一个按钮。当按钮值为英语时,内容将以其他语言显示,反之亦然。但是页面重新加载后按钮值始终设置为英语。我正在使用laravel 5.3
html代码:
<input type="button" name="locale" id="languageSwitcher" href="{!! url('lang') !!}" class="btn btn-round btn-primary" value="English">
javascript代码:
$("#languageSwitcher").change(function () {
var locale = document.getElementById("languageSwitcher").value;
if (locale == "English") {
lang = "en";
document.getElementById("languageSwitcher").value = "Bangla"
}
else if (locale == "Bangla") {
lang = "bn";
document.getElementById("languageSwitcher").value = "English"
}
var _token = $("meta[name=_token]").val();
$.ajax({
url: "/language",
type: 'POST',
data: {locale: lang, _token: _token},
dataType: 'json',
success: function (data) {
},
error: function (data) {
},
beforeSend: function (data) {
},
complete: function (data) {
window.location.reload(true);
}
});
});
答案 0 :(得分:0)
你的问题在这里
<input type="button" name="locale" id="languageSwitcher" href="{!! url('lang') !!}" class="btn btn-round btn-primary" value="English">
你必须使用一个变量通过控制器传递值,或者在控制器上寻找控制器,因为在每个页面上重新加载你的值总是会从视图上的输入html标签值静态加入
答案 1 :(得分:0)
当页面重新加载您的代码时
<input type="button" name="locale" id="languageSwitcher" href="{!! url('lang') !!}" class="btn btn-round btn-primary" value="English"
再次运行..很明显,该值设置为&#34;英语&#34;。如果你想满足你的要求,那么尝试一些可以保存值的东西,比如隐藏的输入提交我们的全局变量。