У меня есть форма отправки с использованием метода POST
, без кнопки отправки.
<form action="" method="post" id="submit_cookie_form">
<input type="hidden" name="lang" value="" id="cookie_form">
</form>
Моя цель:
- Передать значение для ввода атрибута скрытого значения [* 1]
- Установить код, который будет выполняться / запускаться при передаче значения в атрибут значения [* 2]
- Отправить форму при передаче значения в атрибут значения [* 3] =>ISSUE
- Передать значение Javascript ('en' или 'jp') в переменную php.[* 4] => ISSUE
[* 3] => Когда я использую submit()
, как указано в [* 3], страница перезагружается навсегда.Кажется, что форма подается навсегда.Почему это происходит и как я могу исправить код?
[* 4] => Почему php получает только значение 'en'
?Хотя атрибут value <input type="hidden" name="lang" value="" id="cookie_form">
отлично получает '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;
}
?>