繁体   English   中英

Submit()重复执行&php仅接收默认值

[英]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>

我的目标:

  1. 将值传递给输入的隐藏值属性[* 1]
  2. 设置将值传递给value属性[* 2]时要执行/触发的代码
  3. 将值传递给value属性[* 3] => ISSUE时提交表单
  4. 将Javascript值(“ en”或“ jp”)传递给php变量。 [* 4] => ISSUE

[* 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM