注意點:
1. 用POST發送數據,在2號線函數(也是ajax發送數據的函數:ajaxCall)必須加上一句:xmlObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
接著使用xmlObject.send(data);發送
2.3號線函數要注意:
1.禁用緩存(建議,不必要):header("Cache-Control:no-cache");
2.使用XML數據格式必須加上:header("Content-Type: text/xml; charset=gb2312");//這里要寫XML
3.若使用WAMP5集成環境安裝的MYSQL,在查詢數據庫時候,必須加上:
$charset = "gb2312";
mysql_query("SET character_set_connection=$charset, character_set_results=$charset, character_set_client=binary"); //這句是必須的,解決中文亂碼加密問題s
否則就會亂碼加密,今天我就是在這里浪費了很久時間,我是用ECSHOP GBK版 默認安裝的數據庫
4.若用XML接受數據,回調函數必須分IE和非IE處理,否則總是有一方娶不到XML數據
處理代碼如下:
代碼如下:
function getXMLData(tagName)//獲取XML數據,分IE和非IE處理
{
var info;
if(window.ActiveXObject) //IE取回XML文件方法
{
var doc = new ActiveXObject("MSxml2.DOMDocument");
doc.loadXML(xmlObject.responseText);
info = doc.getElementsByTagName(tagName);
}
else //---------------------------非IE取回XML文件方法
{
info = xmlObject.responseXML.getElementsByTagName(tagName);
}
return info;
}
下面就是我做的一個省市聯動測試
代碼如下:
index.php
代碼如下:
<!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=gb2312" />
<title>省事聯動測試</title>
<style type="text/css" >
select{
width:100px;
}
</style>
<script type="text/javascript" >
var thisId = ""; //當前操作的selectI的D
var xmlObject; //ajax 對象全局變量,
function getAjaxObject()//AJAX 1號線,返回一個AJAX 對象引擎
{
var xmlObject ;
if(window.ActiveXObject)
{
xmlObject = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
xmlObject = new XMLHttpRequest();
}
return xmlObject ;
}
function ajaxCall(id) //ajax 二號線 ,這里采用 post 傳遞參數
{
xmlObject = new getAjaxObject();
if(xmlObject)
{
var url = "chuli.php";
var data = "id=" + id;
xmlObject.open("post",url,true);
xmlObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlObject.onreadystatechange = repayFuncion;
新聞熱點
疑難解答
圖片精選