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;
}


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