Я знаю, что я делаю что-то не так, но я не могу понять, что я делаю неправильно.
Я использую простое поле выбора для переключения языков на моем веб-сайте.Я связал эту функцию с полем выбора:
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 Categories
Пример: language_id = 1 (English) category =Певец
language_id = 2 (французский) категории = Chanteur
language_id = 3 (голландский) категории = Zanger
Я использую следующий код для извлечения данных:
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();
Я попробовал все, что знаю, чтобы решить эту проблему, но безуспешно.
Заранее спасибо.