ASP ASPからAJAXを使う
AJAXを使うと画面遷移(ポストバック)することなく動的にデータ表示したりできます。
郵便番号が入力されたら該当する住所を初期表示するときに今までは画面がPOSTやGETなどで一旦画面が切り替えざる得ませんでした。
AJAXを使えば、画面はそのままで住所を表示することが可能です。
メイン.aspのJavascript
//郵便番号を呼び出す関数(getaddress.aspを呼んでいます)
function GetAddress(y)
{
var url = encodeURI("getaddress.asp?yubin=" + y);
req = getXMLHttpRequest();
req.onreadystatechange = GetAddressCallBack;
req.open("GET", url, true);
req.send();
return true;
}
// XMLの要素を返す
function GetAddressCallBack()
{
if (req.readyState == 4) {
if (req.status == 200) {
try {
var response = req.responseXML.documentElement;
var rc = response.getElementsByTagName("address")[0].firstChild.data;
if (rc != null) {
document.getElementById("address").value = rc;
}
} catch (e) {
}
}
}
}
// XMLからのリクエストを返す
function getXMLHttpRequest() {
var x = null;
if (typeof XMLHttpRequest != "undefined") {
x = new XMLHttpRequest();
} else {
try {
x = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
x = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
return x;
}
・getaddress.asp
ここでXMLデータをメイン.aspに返しています
<%@ Language=VBScript %>
<%
if Request.QueryString("yubin") <> "" then
Dim strAddress
strAddress = "てすと!"
'XML出力
Response.ContentType = "text/xml"
Response.write("<?xml version=""1.0"" encoding=""Shift_JIS"" standalone=""yes""?>")
Response.write("<POST_DATA>")
Response.write("<address>" & strAddress & "</address>")
Response.write("</POST_DATA>")
end if
%>
| 固定リンク
「ASP」カテゴリの記事
- IE6 詳細なエラーを表示するには(2006.09.06)
- ASP ASP開発でVWD2005を使用してみる(2006.02.06)
- ASP ASPからAJAXを使う(2006.02.03)
- ASP 特定画面のみタイムアウトを発生させない方法(2006.02.02)
- ASP 検索処理などで検索画面が表示されるまで検索中画面を表示するには(2006.01.24)

コメント
こんばんは
こちらの覚書のおかげで助かりました。
>Response.ContentType = "text/xml"
この記述がわからずはまっておりました。
ありがとうございました!
投稿: ryu | 2006年5月17日 (水) 23時25分
車いすを欲しいんですけど、吉田屋でくれないでしょうか
投稿: 今井 美芳 | 2006年9月 2日 (土) 13時19分