gpt4 book ai didi

php - 切换语言 javascript/php

转载 作者:行者123 更新时间:2023-11-30 13:36:59 26 4
gpt4 key购买 nike

我知道我做错了什么,但我不知道我做错了什么。

我使用一个简单的选择框来切换我网站上的语言。我将此功能链接到选择框:

function changeLang(){
var chosenLang = $('#chooseLang').val();

if(chosenLang != 0){
window.location = "index.php?lang="+chosenLang
}
}

在 language.php 文件中,我使用以下代码:

<?php
$lang = $_GET['lang'];
$myLang = $_COOKIE["myLang"];

// one month to expire
$expire = time()+60*60*24*30;

if (!isset($_COOKIE["myLang"])){
setcookie("myLang", "en", $expire);
include "languages/en.php";
}else{
include "languages/$myLang.php";
}



if($lang == "en"){
include "languages/en.php";
setcookie("myLang", "en", $expire);
}else if($lang == "fr"){
include "languages/fr.php";
setcookie("myLang", "fr", $expire);
}else if($lang == "nl"){
include "languages/nl.php";
setcookie("myLang", "nl", $expire);
}

?>

一切正常,每次都成功将 cookie 值更改为新语言。所有的变量也在发生变化。唯一的问题是我用来以所选语言从数据库中检索数据的查询。似乎总是落后一步。例子:如果我启动网站,语言是英语。一旦我切换到法语,所有变量都会立即更改为法语,但查询中的行仍然是英语。只有当我手动刷新页面时,行才会更改为所需的语言。

数据库中的数据是这样输入的:language_id类别

例子:language_id = 1(英语)类别 = 歌手

language_id = 2(法语)类别 = Chanteur

language_id = 3(荷兰语)类别=赞格

我使用以下代码检索数据:

if($myLang == "en" || !$myLang){
$lang = 1;
}else if($myLang == "fr"){
$lang = 2;
}else if($myLang == "nl"){
$lang = 3;
}

$stmt = $dbh->prepare("SELECT cat_title, cat_group
FROM categories
WHERE cat_lang_id = '$lang'
ORDER BY category_id ASC");
/*** execute the prepared statement ***/
$stmt->execute();
/*** fetch the results ***/
$result = $stmt->fetchAll();

我尝试了我所知道的一切来解决这个问题,但没有任何运气。

提前致谢。

最佳答案

您还需要设置 $myLang。调用 setcookie() 不会更新这个变量。例如:

if($lang == "en"){
include "languages/en.php";
setcookie("myLang", "en", $expire);
$myLang = 'en'; // <-- add this line

您需要像本示例一样更新所有 block 。

但是,我不得不建议重写它以消除所有重复代码:

// Put $languages in a common header file.
$languages = array('en' => 1, 'fr' => 2, 'nl' => 3);

if (array_key_exists($lang, $languages)) {
include "languages/{$lang}.php";
setcookie("myLang", $lang, $expire);
$myLang = $lang;
}

在数据库代码中:

$lang = array_key_exists($myLang, $languages) ? $languages[$myLang] : 1;

关于php - 切换语言 javascript/php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com