存档

文章标签 ‘ajax’

教你用php+ajax更换网站语言

2015年3月14日 没有评论

第一步,我们需要准备如下文件:
choice_language_index.php
choice_language_check.php
language(文件夹)
——–en.php
——–japan.php
——–zh.php

choice_language_index.php文件内容:
[code]
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>无标题文档</title>
</head>

<body>
<script type=”text/javascript” defer=”defer”>//需要加defer=”defer”的原因是:为判断当前选择的语言种类,然后对该语言进行默认选中时需要等页面执行完毕后在操作
var xhttp
function get_xhttp(){//获取xmlHTTPRequest对象
if(document.all){
xhttp=new ActiveXObject(“Microsoft.XMLHTTP”)
}
else {
xhttp=new xmlHTTPRequest()
}
return xhttp
}
function choice_language(){//开始向处理页面发送信息(所选择的语言)
xhttp=get_xhttp()
xhttp.onreadystatechange=choice_language_ok
var language_value=escape(document.getElementById(“choice_language”).value)
var choice_language_sendUrl=”choice_language_check.php?language_value=”+language_value+”&random_value=”+Math.random()
xhttp.open(“get”,choice_language_sendUrl,true)
xhttp.send(null)
}
function choice_language_ok(){//处理页面处理结果结束,在页面输出该内容
if(xhttp.readyState==4 && xhttp.status==200){
document.body.innerHTML=unescape(xhttp.responseText)
}
}
//以下为判断当前选择的语言种类,然后对该语言进行默认选中
var obj=document.getElementById(“choice_language”).options
var now_language='<?php echo $now_language; ?>’
for(i=0;i<obj.length;i++){
if(obj.value==now_language){
obj.setAttribute(“selected”,true)
}
}
window.onload=choice_language
</script>
请选择语言种类:(默认为简体中文)
<select id=”choice_language”>
<option value=”default_language”>请选择语言</option>
<option value=”zh”>简体中文</option>
<option value=”en”>英文</option>
<option value=”japan”>日文</option>
</select><br /><br />
第一:<br />    解释:<?php echo $language_first; ?><br /><br />
第二:<br />    解释:<?php echo $language_second; ?><br /><br />
第三:<br />    解释:<?php echo $language_third; ?><br /><br />
</body>
</html>
[code]

choice_language_check.php内容:
[code]
<?php
$language_value=$_GET[“language_value”];
//如果文件名称和语言获取到的值是一样的,可以使用下面的方式进行加载所需语言文件
/*
$language_file=”language/”.$language_value.”.php”;
require_once($language_file);
*/
switch($language_value){
case “en”:require_once(“language/en.php”);$now_language=”en”;break;
case “zh”:require_once(“language/zh.php”);$now_language=”zh”;break;
case “japan”:require_once(“language/japan.php”);$now_language=”japan”;break;
default:require_once(“language/zh.php”);$now_language=”default_language”;break;
};
$new_language_file=require_once(“choice_language_index.php”);
//这里不需要写 echo $new_language_file;的原因是因为当把这个文件包含过来的时候已经执行了里面的html代码;所以在本页面中已经有输出内容了,也就是选择语言之后的全部效果
?>
[code]

en.php内如下:
[code]
<?php
$language_first=”first”;
$language_second=”second”;
$language_third=”third”;
?>
[code]

en.php内如下:
[code]
<?php
$language_first=”ГДī”;
$language_second=”ぁ⒖ “;
$language_third=”いóⅢ”;
?>
[code]

zh.php内如下:
[code]
<?php
$language_first=”第一”;
$language_second=”第二”;
$language_third=”第三”;
?>
[code]

分类: php学习 标签: ,

javascript中的ajax跨域取值问题

2013年6月22日 没有评论

做了一个功能,利用ajax效果,但是ajax的处理页面ajax.php非常消耗资源,所以找了个免费空间把ajax.php导入进去,这样就可以节省自身服务器资源,别人光有一个ajax.php其实也没用,对吧,呵呵。
自己的服务器域名是1.aaa.com(二级域名),但是绑定在别人上面的是1.bbb.com
本地测试的程序都没有任何问题,但是为什么上传ajax.php到1.bbb.com上就无法读取数据呢?
百度了一下,原来啊,是ajax跨域取值的问题,这总算找到原因了,找到原因就好解决了啊,下面找到的解决办法:
定义一个函数,用来调取ajax:
function jsonCallBack(url,callback){
$.getScript(url,function(){
callback(json);
});
}
发送ajax请求使用:
jsonCallBack(url,function(json){alert(json.message)});
其中url可以直接使用”ajax.php?act=”中使用参数
然后呢,就到处理ajax跨域的php文件了:
function returnJSON($msg){
$json=json_encode(array(‘message’=>$msg));
echo “var json=$json;”;
//一定要这样定义输出最后的JSON数据,这是利用JS的闭包特性
exit();
}
这样只要调用函数returnJSON即可,这样整体就搞定了ajax跨域取值的问题

css.php