私は何か間違っていることを知っていますが、私が間違っていることを理解できません。スイッチ言語javascript/ph
私は単純な選択ボックスを使用して自分のウェブサイトの言語を切り替えます。私は次のコードを使用language.phpファイルで
function changeLang(){
var chosenLang = $('#chooseLang').val();
if(chosenLang != 0){
window.location = "index.php?lang="+chosenLang
}
}
::私は選択ボックスに、この関数をリンクすべてが正常に動作します
<?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);
}
?>
、クッキー値が正常にすべての新しい言語に変更され時間。すべての変数も変化しています。唯一の問題は、選択した言語のデータベースからデータを取得するために使用するクエリです。それはいつも一歩の後ろにあるようです。例: ウェブサイトを開始すると、その言語は英語で表示されます。フランス語に切り替えると、すべての変数は直ちにフランス語に変更されますが、クエリの行はまだ英語です。手動でページを更新するときだけ、行は希望の言語に変更されます。データベース内
データは、このように入力された: は カテゴリ
例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();
私は、しかし、運のない、この問題を解決するために、私が知っているすべてを試してみました。
ありがとうございます。
を** **言語を切り替えるにはJSやクッキーを使用することはありません。しかし、アドレスバーには、常にサブドメインとして配置するのが好ましい。 –