test.php?r=12 へアクセスするとAjaxを通して別のスクリプト return.php?r=12 へアクセスします。
リクエストを受けたreturn.phpはHTMLデータをリターンします。リターンされたデータを test.php?r=12 へ表示させたいのですが、どうすればいいのでしょうか?
フレームとかはなしです。よろしくお願いいたします。
これでいかがでしょうか
「test.php」として保存、実行
動作確認済みです
どれか忘れてしまいましたがajax本のサンプルを元にしてあります
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title></title>
<script language="javascript" type="text/javascript">
var httpObj;
var timerId;
var timeout_sec = 10;//タイムアウト
function httpRequest() {
var target_url = '<? print "return.php?r=12"; ?>';
try {
if(window.XMLHttpRequest) {
httpObj = new XMLHttpRequest();
} else if(window.ActiveXObject) {
httpObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpObj = false;
}
} catch(e) {
httpObj = false;
}
if(! httpObj) {
httpObjGenerateFail();
}
// タイマー
timerId = setInterval('timeoutCheck()', 1000);
httpObj.open("GET", target_url, true);
httpObj.onreadystatechange = function() {
if (httpObj.readyState == 4) {
clearInterval(timerId);
if (httpObj.status == 200) {
document.getElementById('main').innerHTML = httpObj.responseText;
} else {
alert(httpObj.status + ' : ' + httpObj.statusText);
return false;
}
}
}
httpObj.send('');
}
// 失敗時の処理
function httpObjGenerateFail() {
alert('ご利用のブラウザーでは、当サイトをご利用頂けません。');
return false;
}
// タイムアウト
function timeoutCheck() {
timeout_sec --;
if(timeout_sec <= 0) {
// タイマーストップ
clearInterval(timerId);
// HTTPリクエスト中断
httpObj.abort();
// エラーダイアログ
alert('タイムアウト');
return false;
}
}
</script>
</head>
<body onload="httpRequest()">
<div id="main"></div>
</body>
</html>
表示させたいボックスに ID 属性を指定しておいて、DOM で取得。
element.innerHTML にリターンされたデータを代入すればそのまま表示されます。
これでいかがでしょうか
「test.php」として保存、実行
動作確認済みです
どれか忘れてしまいましたがajax本のサンプルを元にしてあります
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title></title>
<script language="javascript" type="text/javascript">
var httpObj;
var timerId;
var timeout_sec = 10;//タイムアウト
function httpRequest() {
var target_url = '<? print "return.php?r=12"; ?>';
try {
if(window.XMLHttpRequest) {
httpObj = new XMLHttpRequest();
} else if(window.ActiveXObject) {
httpObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpObj = false;
}
} catch(e) {
httpObj = false;
}
if(! httpObj) {
httpObjGenerateFail();
}
// タイマー
timerId = setInterval('timeoutCheck()', 1000);
httpObj.open("GET", target_url, true);
httpObj.onreadystatechange = function() {
if (httpObj.readyState == 4) {
clearInterval(timerId);
if (httpObj.status == 200) {
document.getElementById('main').innerHTML = httpObj.responseText;
} else {
alert(httpObj.status + ' : ' + httpObj.statusText);
return false;
}
}
}
httpObj.send('');
}
// 失敗時の処理
function httpObjGenerateFail() {
alert('ご利用のブラウザーでは、当サイトをご利用頂けません。');
return false;
}
// タイムアウト
function timeoutCheck() {
timeout_sec --;
if(timeout_sec <= 0) {
// タイマーストップ
clearInterval(timerId);
// HTTPリクエスト中断
httpObj.abort();
// エラーダイアログ
alert('タイムアウト');
return false;
}
}
</script>
</head>
<body onload="httpRequest()">
<div id="main"></div>
</body>
</html>
well done
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | ![]() |
40回 | 36回 | 0回 | 2007-01-28 23:48:18 |
2 | ![]() |
1回 | 0回 | 0回 | 2007-01-29 00:06:32 |
3 | ![]() |
29回 | 28回 | 2回 | 2007-01-29 10:36:07 |
well done