我有一个像ios一样的复选框,使用我希望更改网站语言的状态。我用这个代码: langchange.js
$(document).ready(function(){
$("#langfct").change(function() {
if($(this).is(":checked")) {
$.ajax({
url: 'langfunc.php',
type: 'POST',
data: { langstate: "fr" }
});
alert('fr');
window.location.reload();
} else {
$.ajax({
url: 'langfunc.php',
type: 'POST',
data: { langstate: "en" }
});
alert('en');
window.location.reload();
}
});
});
langfunc.php
<?php
session_start ();
$valang = $_POST['langstate'];
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if ($valang == fr){
include("french.php");
}elseif ($valang == en) {
include("english.php");
} else{
switch ($lang){
case "fr":
//echo "PAGE FR";
include("french.php");//include check session FR
break;
case "en":
//echo "PAGE EN";
include("english.php");
break;
default:
//echo "PAGE EN - Setting Default";
include("english.php");//include EN in all other cases of different lang detection
break;
}
}
?>
如何使用复选框的状态,保存langstate并重新加载数据? THX
答案 0 :(得分:0)
重构代码如下。问题是,您在ajax完成之前正在重新加载页面,并且由于阻止警报,可能甚至无法发送ajax。
var lang = 'en'; //default
if($(this).is(":checked")) {
lang = 'fr';
}
$.ajax({
url: 'langfunc.php',
type: 'POST',
data: { langstate: lang },
success: function() {
alert(lang);
window.location.reload();
}
});