php下のオリジナルajaxリクエスト用法例分析
8160 ワード
本明細書の例では、phpにおけるオリジナルajaxリクエストの使用法について説明する.皆さんの参考にしてください.具体的には以下の通りです.
ブラウザには、HTTPリクエストを送信し、サービス側の応答を受け入れるのに役立つJSオブジェクトXMLHttpRequetが用意されています.
私たちのブラウザはコミットしないで、JSを通じてサーバーを要求することができることを意味します.
ajax(Asynchronous Javascript And XML)は、XHRオブジェクトを介してHTTPリクエストを実行します.
1、XHRオブジェクトの作成
2、XHRのオブジェクト属性と方法
3、XHRオブジェクトによるget要求の送信
ajax.phpは以下の通りです.
データを入力し、マウスのフォーカスがinputから離れると、リクエストがトリガーされ、応答内容がポップアップされます.
4、XHRオブジェクトによるpost要求の送信
(1)、open()第1パラメータはpost
(2)、POSTのパラメータをk=v&k 1=v 1&k 2=v 2の形でつなぎ合わせ、send()で送る
(3)、アプリケーション/x-www-form-urlencodedにContent-Typeを設定する必要があります
ajax.phpは以下の通りです.
submitをクリックしてpostリクエストを送信し、応答情報をポップアップします.
5、戻り値json,html,text,xml
戻り値はtextとxmlの2種類しかありません.ただしtextコンテンツにはhtmlまたはjson構造の文字列であってもよい.
(1)、json形式を返す
ajax.phpは以下の通りです.
(2)、xml形式を返す
xmlはresponseXMLで読み出され、responseXMLは文字列ではなくDOMオブジェクトです.
6、ajaxの同期と非同期
Open()の3番目のパラメータtrue/falseを設定することで、リクエストの効果を表示します.
同期要求:
要求の送信->結果の待機->操作の完了->後続コードの続行.後のコードを続行するには、結果の処理が完了するまで待たなければなりません.手順に従って一歩一歩実行します.
非同期リクエスト:
要求の送信->後続コードの続行->応答結果の受信完了->操作結果.非同期リクエストは、リクエストが送信された後、結果の戻りを待つのではなく、後のコードを実行し続ける.すなわち、結果が返される前にユーザは他のものを操作することができる.
PHPに関する詳細については、「PHP+ajaxテクニックと応用小結」、「PHPネットワークプログラミングテクニック総括」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」、「phpよくあるデータベース操作テクニック要約」を参照してください.
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.
ブラウザには、HTTPリクエストを送信し、サービス側の応答を受け入れるのに役立つJSオブジェクトXMLHttpRequetが用意されています.
私たちのブラウザはコミットしないで、JSを通じてサーバーを要求することができることを意味します.
ajax(Asynchronous Javascript And XML)は、XHRオブジェクトを介してHTTPリクエストを実行します.
1、XHRオブジェクトの作成
var xhr = new XMLHttpRequest(); //
2、XHRのオブジェクト属性と方法
:
open("get/post", url, true/false);
// k=v&k1=v1
send(null);
:
// , , 4 ,
readyState
//
responseText
// 200,403,404
status
//
statusText
:
// readyState
onreadystatechange = function() {};
3、XHRオブジェクトによるget要求の送信
ajax
var ipt = document.getElementById("con");
ipt.onblur = function () {
var con = this.value;
// XHR
var xhr = new XMLHttpRequest();
// URL
var url = "./ajax.php?con=" + con;
// XHR readyState
xhr.onreadystatechange = function () {
//readyState , 4
if (xhr.readyState == 4) {
//responseText
alert(" :" + this.responseText);
}
};
//
xhr.open("get", url, true);
//
xhr.send(null);
}
ajax.phpは以下の通りです.
データを入力し、マウスのフォーカスがinputから離れると、リクエストがトリガーされ、応答内容がポップアップされます.
4、XHRオブジェクトによるpost要求の送信
(1)、open()第1パラメータはpost
(2)、POSTのパラメータをk=v&k 1=v 1&k 2=v 2の形でつなぎ合わせ、send()で送る
(3)、アプリケーション/x-www-form-urlencodedにContent-Typeを設定する必要があります
ajax
var sub = document.getElementById("sub");
sub.onclick = function () {
var name = document.getElementById("name").value;
var pwd = document.getElementById("pwd").value;
// XHR
var xhr = new XMLHttpRequest();
// URL
var url = "./ajax.php";
// XHR readyState
xhr.onreadystatechange = function () {
//readyState , 4
if (xhr.readyState == 4) {
//responseText
alert(" :" + this.responseText);
}
};
//
xhr.open("post", url, true);
//
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//
xhr.send("name=" + name + "&pwd=" + pwd);
}
ajax.phpは以下の通りです.
submitをクリックしてpostリクエストを送信し、応答情報をポップアップします.
5、戻り値json,html,text,xml
戻り値はtextとxmlの2種類しかありません.ただしtextコンテンツにはhtmlまたはjson構造の文字列であってもよい.
(1)、json形式を返す
ajax
var get = document.getElementById("get");
var city = document.getElementById("city");
get.onclick = function () {
// XHR
var xhr = new XMLHttpRequest();
// URL
var url = "./ajax.php";
// XHR readyState
xhr.onreadystatechange = function () {
//readyState , 4
if (xhr.readyState == 4) {
//responseText
// eval json
var data = eval(this.responseText);
var str = "";
for(var ix in data) {
str += "<option value='" + data[ix].id + "'>" + data[ix].name + "</option>";
}
city.innerHTML = str;
}
};
//
xhr.open("get", url, true);
//
xhr.send(null);
}
ajax.phpは以下の通りです.
1, 'name' => ' '),
array('id' => 2, 'name' => ' '),
array('id' => 3, 'name' => ' '),
);
echo json_encode($data);
(2)、xml形式を返す
xmlはresponseXMLで読み出され、responseXMLは文字列ではなくDOMオブジェクトです.
ajax
var get = document.getElementById("get"); var news = document.getElementById("news"); get.onclick = function () { // XHR var xhr = new XMLHttpRequest(); // URL var url = "./ajax.php"; // XHR readyState xhr.onreadystatechange = function () { //readyState , 4 if (xhr.readyState == 4) { //responseXML var data = this.responseXML; var str = ""; var title = data.getElementsByTagName("title"); str += "<p>" + title[0].childNodes[0].nodeValue + "</p>"; str += "<p>" + title[1].childNodes[0].nodeValue + "</p>"; str += "<p>" + title[2].childNodes[0].nodeValue + "</p>"; news.innerHTML = str; } }; // xhr.open("get", url, true); // xhr.send(null); }
ajax.php如下:
111
222
333
EOD;
echo $xml;
6、ajaxの同期と非同期
Open()の3番目のパラメータtrue/falseを設定することで、リクエストの効果を表示します.
同期要求:
要求の送信->結果の待機->操作の完了->後続コードの続行.後のコードを続行するには、結果の処理が完了するまで待たなければなりません.手順に従って一歩一歩実行します.
非同期リクエスト:
要求の送信->後続コードの続行->応答結果の受信完了->操作結果.非同期リクエストは、リクエストが送信された後、結果の戻りを待つのではなく、後のコードを実行し続ける.すなわち、結果が返される前にユーザは他のものを操作することができる.
PHPに関する詳細については、「PHP+ajaxテクニックと応用小結」、「PHPネットワークプログラミングテクニック総括」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」、「phpよくあるデータベース操作テクニック要約」を参照してください.
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.