[英]Javascript For Loop executes repeatedly in Chrome plugin, but only once from console
[英]submit() executes repeatedly&php receives only default value
我有一个使用POST
方法的提交表单,没有提交按钮。
<form action="" method="post" id="submit_cookie_form">
<input type="hidden" name="lang" value="" id="cookie_form">
</form>
我的目标:
[* 3] =>当我按以下方式对[* 3]使用submit()
,该页面将被永久重新加载。 似乎表格将永远提交。 为什么会发生这种情况,如何修复代码?
[* 4] =>为什么php只接收'en'
值? 虽然, <input type="hidden" name="lang" value="" id="cookie_form">
value属性可以根据用户在网页上的点击完全接收到'en'
和'jp'
。 我怎样才能解决这个问题?
let latestCookie;
$(document).on('ready', function(){
if (localStorage.getItem("language") === null || localStorage.getItem("language") === flag.en){
document.cookie = "language=en";
} else if (localStorage.getItem("language") === flag.jp){
document.cookie = "language=jp";
}
latestCookie = getCookieValue('language');
document.getElementById('cookie_form').value = latestCookie; //[*1]
setLang(latestCookie); //[*2]
})
$('#cookie_form').change(function(){
$('#submit_cookie_form').submit(); }); //[*3]
function setLang(chosenLang){
$('#cookie_form').val(chosenLang).trigger('change');
}
<?php
if(isset($_POST['lang'])){
$lang=$_POST['lang']; //[*4]
echo $lang;
}
else{
echo $lang;
}
?>
$('.dropdown-menu a img').on('click', function(){
let flag = $(this).attr('src');
$('#selected').attr('src', flag);
let key = $('#selected').attr('src');
localStorage.setItem("language", key);
refreshPage(key);
});
function refreshPage(key){
window.location.href = '<php echo $_SERVER[\'PHP_SELF\']."?lang="; ?>'+key;
}
然后在PHP中,您可以使用GET方法作为查询字符串。
<?php
if(isset($_REQUEST['lang'])){
$lang=$_REQUEST['lang']; //[*4]
echo $lang;
}
else{
echo $lang;
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.