關(guān)于XMLHTTP和XML實(shí)現(xiàn)無(wú)刷新提交
HTML頁(yè)面
<script language="javascript">
function chkform()
{
if(form1.UserName.value=="")
{
alert("真實(shí)姓名不能為空!");
form1.UserName.focus();
return false;
}
if(form1.Password.value=="")
{
alert("電話號(hào)碼不能為空!");
form1.Password.focus();
return false;
}
saveData();
}
function saveData()
{
var objDom = new ActiveXObject("MSXML2.DOMDocument");
objDom.loadXML("<Root/>");
oGeneral = objDom.createElement("username");
oGeneral.text=form1.UserName.value;
objDom.documentElement.appendChild(oGeneral);
oGeneral = objDom.createElement("password");
oGeneral.text=form1.Password.value;
objDom.documentElement.appendChild(oGeneral);
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("post","submit\\checklogin.asp",false);
xmlhttp.send(objDom);
if(xmlhttp.responseText=="True"){
window.location="main.asp";
}
else
{
alert(unescape(xmlhttp.responseText));
}
}
</script>
<form name="form1" method="post">
用戶名稱:<input name="UserName" type="text">
用戶密碼:<input name="Password" type="password">
<img src="3.jpg" width="240" height="82" onClick="javascript:chkform()" style="cursor:hand">
</from>
submit\checklogin.asp頁(yè)面內(nèi)容
<!--#include file="../include/const.asp"-->
<!--#include file="../include/Function.asp"-->
<!--#include file="../include/MD5.asp"-->
<%
on error resume next
‘------------------------------------------------------------------
‘---------------------讀取XML對(duì)象----------------------------------
‘------------------------------------------------------------------
dim username,password
set XmlDom = server.CreateObject("Msxml2.domdocument")
XmlDom.async = False
XmlDom.load(request)
If XmlDom.parseError.errorCode<>0 Then
response.Write ("Flase")
response.End()
End If
username = XmlDom.selectSingleNode("http://username").text
password = XmlDom.selectSingleNode("http://password").text
set XmlDom = nothing
‘------------------------------------------------------------------
‘Response.Write username&password
‘Response.End()
dim errmsg
set rs=server.createobject("adodb.recordset")
rs.ActiveConnection = strConn
rs.Source = "select * from admin where username=‘"&username&"‘"
rs.CursorType = 1
rs.CursorLocation = 2
rs.LockType = 3
rs.open()
if rs.recordcount = 1 then
if rs.Fields.Item("password").Value=MD5(trim(password)) then
if rs.Fields.Item("isclock").Value=1 then
Randomize()
Login_code=Hour(Now()) & Minute(Now()) & Second(Now()) & Int(Rnd()*1000000)
‘Response.Write(Login_code)
‘Response.End()
Response.Cookies(All_cookiesName)("ID")=rs.Fields.Item("cmp_id").Value
Response.Cookies(All_cookiesName)("username")=rs.Fields.Item("username").Value
Response.Cookies(All_cookiesName)("password")=rs.Fields.Item("password").Value
Response.Cookies(All_cookiesName)("state")=rs.Fields.Item("state").Value
Response.Cookies(All_cookiesName)("Login_code")=Login_code
if Cookies_Expires <> 0 then
Response.Cookies(All_cookiesName).Expires=Cookies_Expires
end if
if Cookies_Domain <> "" then
Response.Cookies(All_cookiesName).Domain=Cookies_Domain
end if
rs("Login_code")=Login_code
rs.update()
rs.close()
set rs = nothing
Response.Write("True")
Response.End()
else
Response.Write escape("您的用戶名已經(jīng)被鎖定,\n請(qǐng)向管理申請(qǐng)解鎖!")
Response.End()
end if
else
Response.Write escape("您輸入的密碼錯(cuò)誤!")
Response.End()
end if
else
Response.Write escape("您輸入的用戶名不存在!")
Response.End()
end if
if err.number<>0 then Response.Write escape("不知明錯(cuò)誤!")
%>
這個(gè)是個(gè)最基本的,當(dāng)然我們也可以根據(jù)特定的需要寫成公共函數(shù),把所有的FORM表單里全部VALUE全部給生成XML對(duì)象,然后再對(duì)其操作。
var yaya="";
var checkboxname="";
var radioname="";
var objDom = new ActiveXObject("MSXML2.DOMDocument");
objDom.loadXML("<Root/>");
for(var i=0;i<frm.elements.length;i++)
{
if((frm.elements.type=="text")||(frm.elements.type=="hidden"))
{
oGeneral = objDom.createElement(frm.elements.name);
oGeneral.text=unescape(trim(frm.elements.value));
objDom.documentElement.appendChild(oGeneral);
}
if(frm.elements.tagName=="SELECT")
{
oGeneral = objDom.createElement(frm.elements.name);
oGeneral.text=unescape(frm.elements.options[frm.elements.selectedIndex].value);
objDom.documentElement.appendChild(oGeneral);
}
if(frm.elements.tagName=="TEXTAREA")
{
oGeneral = objDom.createElement(frm.elements.name);
oGeneral.text=unescape(trim(frm.elements.value));
objDom.documentElement.appendChild(oGeneral);
}
if(frm.elements.type=="checkbox")
{
if(checkboxname!=frm.elements.name)
{
for(var j=0;j<document.getElementsByName(frm.elements.name).length; j++)
{
if(document.getElementsByName(frm.elements.name)[j].checked)
{
yaya=yaya + document.getElementsByName(frm.elements.name)[j].value + "," ;
}
}
yaya=yaya.substring(0,yaya.length-1);
oGeneral = objDom.createElement(frm.elements.name);
oGeneral.text=yaya;
objDom.documentElement.appendChild(oGeneral);
checkboxname=frm.elements.name;
yaya="";
}
}
if(frm.elements.type=="radio")
{
if(radioname!=frm.elements.name)
{
for(var j=0;j < document.getElementsByName(frm.elements.name).length;j++)
{
if(document.getElementsByName(frm.elements.name)[j].checked)
{
yaya=document.getElementsByName(frm.elements.name)[j].value;
break;
}
}
oGeneral = objDom.createElement(frm.elements.name);
oGeneral.text=yaya;
objDom.documentElement.appendChild(oGeneral);
radioname=frm.elements.name;
yaya="";
}
}
}
alert(objDom.xml);
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("post",frm.action,false);
xmlhttp.send(objDom);
if(xmlhttp.responseText=="True"){
//這里就是操作成功
}
else{
alert(unescape(xmlhttp.responseText));
}
frm為傳遞進(jìn)來(lái)的form對(duì)象,這個(gè)需要放在一個(gè)函數(shù)里傳遞進(jìn)去frm
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。