Ajax And PHP


test.php?r=12 へアクセスするとAjaxを通して別のスクリプト return.php?r=12 へアクセスします。

リクエストを受けたreturn.phpはHTMLデータをリターンします。リターンされたデータを test.php?r=12 へ表示させたいのですが、どうすればいいのでしょうか?

フレームとかはなしです。よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/01/30 08:02:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:worldtravel No.2

回答回数34ベストアンサー獲得回数4

ポイント60pt

これでいかがでしょうか

「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:esecua

well done

2007/01/29 07:00:56

その他の回答4件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント10pt

表示させたいボックスに ID 属性を指定しておいて、DOM で取得。

element.innerHTML にリターンされたデータを代入すればそのまま表示されます。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060530/239467/

id:worldtravel No.2

回答回数34ベストアンサー獲得回数4ここでベストアンサー

ポイント60pt

これでいかがでしょうか

「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:esecua

well done

2007/01/29 07:00:56

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 kaijikaiji 40 36 0 2007-01-28 23:48:18
2 bxchaki 1 0 0 2007-01-29 00:06:32
3 stephanie 29 28 2 2007-01-29 10:36:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません