« ASP 特定画面のみタイムアウトを発生させない方法 | トップページ | Oracle 専用サーバモードと共有サーバモード »

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 特定画面のみタイムアウトを発生させない方法 | トップページ | Oracle 専用サーバモードと共有サーバモード »

「ASP」カテゴリの記事

コメント

こんばんは
こちらの覚書のおかげで助かりました。

>Response.ContentType = "text/xml"
この記述がわからずはまっておりました。

ありがとうございました!

投稿: ryu | 2006年5月17日 (水) 23時25分

車いすを欲しいんですけど、吉田屋でくれないでしょうか

投稿: 今井 美芳 | 2006年9月 2日 (土) 13時19分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/18498/553110

この記事へのトラックバック一覧です: ASP ASPからAJAXを使う:

» 今日のzipcode [今日のよしなしごと]
郵便番号で住所をDBから引き出してくる一連の流れを画面の書き換えなしで行う。 h [続きを読む]

受信: 2006年8月17日 (木) 01時52分

» XMLHttp [XMLHttp]
GExplore 【まとめ】 Channel 9 に Atlas の screencast が登場! Asyncか。 ASP ASPからAJAXを使う JSONでBiddersインクリメンタル検索、をブログに貼ってみる [スゴ]Ajax を使った日本語 Full IME Axis2 での REST による Webサービス [Ajax]やっと本格的に取り組みだしま... [続きを読む]

受信: 2006年8月18日 (金) 14時42分

« ASP 特定画面のみタイムアウトを発生させない方法 | トップページ | Oracle 専用サーバモードと共有サーバモード »