PHP与ajax的交互

以前写的一些部分代码,PHP与ajax的交互,现在这种方式使用get的方式,function staff_handle_function为处理函数,比如新建一个ajax请求,传递参数等;stateChanged为状态发生改变时触发函数,这时候一般会对界面进行处理等操作,GetXmlHttpObject函数用于生成一个ajax请求。

//处理函数
function staff_handle_function(obj){
xmlHttp=GetXmlHttpObject();
if(null == xmlHttp ){
alert('您的浏览器不支持ajax,请换一个浏览器');
return;
}

var parameter = '?';
checkNumber = 0;
var formNode = obj.parentNode;
var inputNode = formNode.getElementsByTagName('input');

//生成参数
for(var i =0;i<inputNode.length;i++){
if('checkbox' == inputNode[i].type && true == inputNode[i].checked)
{
checkNumber = checkNumber + parseInt(inputNode[i].value,10);
if(parameter != '?') parameter = parameter + '&' + inputNode[i].id + '=' + inputNode[i].value;
else parameter = parameter + 'user_id=' + objectNode.id + '&' + inputNode[i].id + '=' + inputNode[i].value;
}
}

var url="staff_handle";
url = url + parameter;
url = url + "&sid=" + Math.random();
//ajax get形式获取参数
xmlHttp.onreadystatechange = stateChanged;
//true表示异步调用,客户端可以不必要等待服务器响应,先去执行其他脚本
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

*****************************************************************************************************************************
//状态改变调用这个函数
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
var information = xmlHttp.responseText;

if(information){ //ajax调用成功
var div = objectNode.getElementsByTagName('div');
var length = div.length;
for (var i =length-1;i>=0;i--){
objectNode.removeChild(div[i]);
}

//未激活
if(checkNumber == 1){
var divNode = document.createElement('div');
divNode.className = 'not_active';
divNode.innerHTML = '未激活';
objectNode.appendChild(divNode);
return;
}
//员工
else if(checkNumber == 2){
return;
}
//有等级,比如总监之类
else{
if(checkNumber >= 16){
var divNode = document.createElement('div');
divNode.className = 'administrator';
divNode.innerHTML = '管理员';
objectNode.appendChild(divNode);
checkNumber = checkNumber-16;
}
if (checkNumber >= 8){
var divNode = document.createElement('div');
divNode.className = 'chief_inspector';
divNode.innerHTML = '总监';
objectNode.appendChild(divNode);
checkNumber = checkNumber-8;
}
if(checkNumber >= 4){
var divNode = document.createElement('div');
divNode.className = 'manager';
divNode.innerHTML = '经理';
objectNode.appendChild(divNode);
}
}

}
else alert('发生未知错误,请联系客服');
}

document.getElementById('layerBackground').style.display = 'none';
document.getElementById('light').style.display = 'none';
} 
********************************************************************************************
//生成ajax请求
function GetXmlHttpObject() {
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

//处理函数
function staff_handle_function(obj){
xmlHttp=GetXmlHttpObject();
if(null == xmlHttp ){
alert('您的浏览器不支持ajax,请换一个浏览器');
return;
}

var parameter = '?';
checkNumber = 0;
var formNode = obj.parentNode;
var inputNode = formNode.getElementsByTagName('input');

//生成参数
for(var i =0;i<inputNode.length;i++){
if('checkbox' == inputNode[i].type && true == inputNode[i].checked)
{
checkNumber = checkNumber + parseInt(inputNode[i].value,10);
if(parameter != '?') parameter = parameter + '&' + inputNode[i].id + '=' + inputNode[i].value;
else parameter = parameter + 'user_id=' + objectNode.id + '&' + inputNode[i].id + '=' + inputNode[i].value;
}
}

var url="staff_handle";
url = url + parameter;
url = url + "&sid=" + Math.random();
//ajax get形式获取参数
xmlHttp.onreadystatechange = stateChanged;
//true表示异步调用,客户端可以不必要等待服务器响应,先去执行其他脚本
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

*****************************************************************************************************************************
//状态改变调用这个函数
function stateChanged()
{
if (xmlHttp.readyState==|| xmlHttp.readyState=="complete")
{
var information = xmlHttp.responseText;

if(information){ //ajax调用成功
var div = objectNode.getElementsByTagName('div');
var length = div.length;
for (var i =length-1;i>=0;i--){
objectNode.removeChild(div[i]);
}

//未激活
if(checkNumber == 1){
var divNode = document.createElement('div');
divNode.className = 'not_active';
divNode.innerHTML = '未激活';
objectNode.appendChild(divNode);
return;
}
//员工
else if(checkNumber == 2){
return;
}
//有等级,比如总监之类
else{
if(checkNumber >= 16){
var divNode = document.createElement('div');
divNode.className = 'administrator';
divNode.innerHTML = '管理员';
objectNode.appendChild(divNode);
checkNumber = checkNumber-16;
}
if (checkNumber >= 8){
var divNode = document.createElement('div');
divNode.className = 'chief_inspector';
divNode.innerHTML = '总监';
objectNode.appendChild(divNode);
checkNumber = checkNumber-8;
}
if(checkNumber >= 4){
var divNode = document.createElement('div');
divNode.className = 'manager';
divNode.innerHTML = '经理';
objectNode.appendChild(divNode);
}
}

}
else alert('发生未知错误,请联系客服');
}

document.getElementById('layerBackground').style.display = 'none';
document.getElementById('light').style.display = 'none';
} 
********************************************************************************************
//生成ajax请求
function GetXmlHttpObject() {
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章