【问题标题】:Need to clic twice to get language to change需要点击两次才能更改语言
【发布时间】:2022-07-05 17:35:11
【问题描述】:

我正在开发一个简单的登录页面,您可以在其中选择显示文本的语言。

这是我的代码:

<?php
$defaultLang = isset($_COOKIE['lang_bcn']) ? $_COOKIE['lang_bcn'] : 'es'; //default 
if(isset($_GET['selectedLanguage'])){
    $languageOption = "";
    switch($_GET['selectedLanguage']){
        case 'en':
        $languageOption = 'en';
        break;
        case 'es':
        $languageOption = 'es';
        break;
        default:
        break;
    }
    if(isset($languageOption)){
        setcookie('lang_bcn',$languageOption,time()+24*7*60*60);//set cookie to expire in 7 days
    }
}

$arrayLang['en']['subtitle'] = 'Discover and learn by playing';
$arrayLang['es']['subtitle'] = 'Descubre y aprende jugando';
?>

//links to language selection
     <a href="?selectedLanguage=es">ES</a>
     <a href="?selectedLanguage=en">EN</a>

//showing the text in the selected language
      <p><?php echo $arrayLang[$defaultLang]['subtitle'];?></p>

而且效果很好,除了要更改语言,我必须在所选语言链接上单击两次。一键点击,文字语言没有变化,我找不到原因。

有人可以帮我吗?

谢谢!

【问题讨论】:

    标签: javascript php arrays cookies


    【解决方案1】:

    您的 $defaultLang 变量定义在顶部,它取决于 cookie。当您第一次单击按钮时,cookie 尚未设置,因此 $defaultLang 将变为 'es',然后您设置 cookie。第二次单击按钮时,cookie 已设置,因此 $defaultLang 变量设置为适当的值。只需将其放在if 语句下方即可。

    if(isset($_GET['selectedLanguage'])){
        $languageOption = "";
        switch($_GET['selectedLanguage']){
            case 'en':
            $languageOption = 'en';
            break;
            case 'es':
            $languageOption = 'es';
            break;
            default:
            break;
        }
        if(isset($languageOption)){
            setcookie('lang_bcn',$languageOption,time()+24*7*60*60);//set cookie to expire in 7 days
        }
    }
    
    $defaultLang = isset($_COOKIE['lang_bcn']) ? $_COOKIE['lang_bcn'] : 'es'; //default 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-26
      • 2016-06-08
      • 2023-03-17
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多