Ajax処理(GETメソッド)
概要
クライアント
Html
<!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=UTF-8" />
<title>テストサイト</title>
<script type="text/javascript" src="./ajax_test.js"></script>
</head>
<body>
<form name="fm">
<label>
名前:
<input type="text" name="name" value="" size="15" />
</label><br />
<label>
年齢:
<input type="text" name="ago" value="" size="5" />
</label>
<input type="button" value="送信" onclick="asyncSend();" />
</form>
<br />
<div id="result"></div>
</body>
</html>
javascript
// リクエストオブジェクトを取得
function getXHR(){
var req;
try{
req = new XMLHttpRequest();
}catch(e){
try{
req = new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
req = new ActiveXObject('Microsoft.XMLHTTP');
}
}
// 返却
return req;
}
// Ajax送信処理
function asyncSend(){
// リクエストオブジェクトを取得
var req = getXHR();
// コールバック関数を定義
req.onreadystatechange = function(){
// オブジェクトエレメントを取得
var result = document.getElementById('result');
// 通信完了ステータスチェック
if(req.readyState == 4){
// リクエストステータスチェック
if(req.status == 200){
result.innerHTML = req.responseText;
}else{
// 通信失敗
result.innerHTML = "サーバエラーが発生しました。";
}
}else{
// 通信完了前
result.innerHTML = "通信中…";
}
}
var param_name = document.fm.name.value;
if(param_name == ''){
alert('名前を設定してください');
return false;
}
var param_ago = document.fm.ago.value;
if(param_ago == ''){
alert('年齢を設定してください');
return false;
}
// URIエンコードを行う
param_name = encodeURIComponent(param_name);
param_ago = encodeURIComponent(param_ago);
// サーバとの非同期通信を開始
req.open('GET',
'http://localhost.testweb01/ajax_test.php' + '?' + 'name=' + param_name + '&ago=' + param_ago,
true);
req.send(null);
}
サーバ
php
<?php
// パラメータ取得
$_name = $_GET['name'];
$_ago = $_GET['ago'];
// パラメータ出力
echo "こんにちは" . $_name . "(" . $_ago . ")" . "さん!";
?>
最終更新:2012年02月19日 10:06