<< Chapter < Page Chapter >> Page >

// on IE, we have to use ActiveX

ro = new ActiveXObject("Microsoft.XMLHTTP");

} else {

// on every other browser, we can directly create a new XMLHttpRequest object

ro = new XMLHttpRequest();

}

return ro;

}

var http = createRequestObject();

// this function should be called for user input

// the response in this case is formatted as follows:

// object|text

// where object is the id of the HTML element we are going to update

// and text is what it will be updated to

// this could obviously work a lot better with some XML

function handleResponse()

{

if(http.readyState == 4) {

var response = http.responseText;

var update = new Array();

if(response.indexOf('|' != -1)) {

update = response.split("|");

document.getElementById(update[0]).innerHTML = update[1];

}

}

}

// this function should be called for user input

// it opens up the usercheck.asp page with a querystring of 'action'

function sndUserCheck(action)

{

http.open("get", "searchMeaning.asp?formWord=" + action);

http.onreadystatechange = handleResponse;

http.send(null);

}

Tệp ajax_search.js

//Gets the browser specific XmlHttpRequest Object

function getXmlHttpRequestObject() {

if (window.XMLHttpRequest) {

return new XMLHttpRequest();

} else if(window.ActiveXObject) {

return new ActiveXObject("Microsoft.XMLHTTP");

} else {

alert("Your Browser Sucks!\nIt's about formWorde to upgrade don't you think?");

}

}

//Our XmlHttpRequest object to get the auto suggest

var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.

//Starts the AJAX request.

function searchSuggest() {

if (searchReq.readyState == 4 || searchReq.readyState == 0) {

var str = escape(document.getElementById('formWord').value);

searchReq.open("GET", 'searchSuggest.asp?formWord=' + str, true);

searchReq.onreadystatechange = handleSearchSuggest;

searchReq.send(null);

}

}

//Called when the AJAX response is returned.

function handleSearchSuggest() {

if (searchReq.readyState == 4) {

var ss = document.getElementById('search_suggest')

ss.innerHTML = '';

var str = searchReq.responseText.split("<br>");

for(i=0; i<str.length - 1; i++) {

//Build our element string. This is cleaner using the DOM, but

//IE doesn't support dynamically added attributes.

var suggest = '<div onmouseover="javascript:suggestOver(this);" ';

suggest += 'onmouseout="javascript:suggestOut(this);" ';

suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';

suggest += 'class="suggest_link">' + str[i] + '</div>';

ss.innerHTML += suggest;

}

}

}

//Mouse over function

function suggestOver(div_value) {

div_value.className = 'suggest_link_over';

}

//Mouse out function

function suggestOut(div_value) {

div_value.className = 'suggest_link';

}

//Click function

function setSearch(value) {

document.getElementById('formWord').value = value;

document.getElementById('search_suggest').innerHTML = '';

}

Tệp search_suggest.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Module tu dien</title>

</head>

<%

//Writen by Minhdn

//Lay bien search bang request, sau do search trong CSDL

//nhung dong nao co title like bien search thi lay ra

%>

<!--#include file="connection.asp"-->

<%///Make sure that a value was sent.

formWord=request("formWord")

//Get every page title for the site.

if len(formWord)>=1 then

str = "SELECT * FROM dictionary WHERE word like '"&formWord&"%' ORDER BY word"

rs.open str,conn

do until rs.eof%>

<%=rs("word")%><br>

<%rs.movenext

loop

rs.close

set rs=nothing

end if

%>

Tệp search_mearning.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

dim strConn, dbConn, RS

set dbconn= server.createObject("ADODB.connection")

dbConn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("dictionary.mdb")

set rs = server.createobject("ADODB.recordset")

'query the database

str="SELECT * FROM dictionary WHERE word = '"&

request.querystring("formWord")&"'"

set RS = dbConn.execute(str)

'is this name taken or not

if not RS.eof then

response.write "TakenOrNot|<b>"&request.querystring("formWord")&":</b><br>"&rs("meaning")

else

response.write "TakenOrNot|Thong bao: "&"Khong co tu nay"

'end if

end if

%>

Tương tự như vậy, các ứng dụng kiểm tra tên đăng nhập (người dùng chọn tên đăng nhập và check xem tên đó đã có chưa), tự động sao lưu văn bản đang soạn thảo (auto save), tự động sao lưu nội dung làm việc của người dùng (ví dụ điền form)… cũng được thực hiện thông qua cơ chế này.

Chúc các bạn thành công

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Giáo trình tổng quan về ajax và wap. OpenStax CNX. Jul 30, 2009 Download for free at http://cnx.org/content/col10828/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Giáo trình tổng quan về ajax và wap' conversation and receive update notifications?

Ask