サーバーが応答した後(おそらく出力あり)、別のJavascript関数/イベントは、他のHTMLと同じようにページに貼り付けるなど、その出力を扱う場所を提供します。
普通のJavascriptで「手で」やjQueryを使うことができます。プロジェクトのサイズや状況によっては、単純なJavascriptを使用する方が簡単かもしれません。
平野のJavascript
この非常に基本的な例では、ユーザーがリンクをクリックしたときに、我々はmyAjax.php
にリクエストを送信します。サーバーは何らかのコンテンツを生成します。この場合は "hello world!"となります。 IDはoutput
のHTML要素に入れます。
javascriptの
// handles the click event for link 1, sends the query
function getOutput() {
getRequest(
'myAjax.php', // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
}
// handles drawing an error message
function drawError() {
var container = document.getElementById('output');
container.innerHTML = 'Bummer: there was an error!';
}
// handles the response, adds the html
function drawOutput(responseText) {
var container = document.getElementById('output');
container.innerHTML = responseText;
}
// helper function for cross-browser request object
function getRequest(url, success, error) {
var req = false;
try{
// most browsers
req = new XMLHttpRequest();
} catch (e){
// IE
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
// try an older version
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return false;
}
}
}
if (!req) return false;
if (typeof success != 'function') success = function() {};
if (typeof error!= 'function') error = function() {};
req.onreadystatechange = function(){
if(req.readyState == 4) {
return req.status === 200 ?
success(req.responseText) : error(req.status);
}
}
req.open("GET", url, true);
req.send(null);
return req;
}
HTML
<a href="#" onclick="return getOutput();"> test </a>
<div id="output">waiting for action</div>
PHP
// file myAjax.php
<?php
echo 'hello world!';
?>
それを試してみてください:http://jsfiddle.net/GRMule/m8CTk/
をJavaScriptライブラリ(jQueryのら)
は間違いなく、それはJavascriptのコードがたくさんあるで。もちろん、ブロックを締めたり、より簡潔な論理演算子を使用したりすることで、これを短くすることができますが、そこにはまだ多くのことが起こっています。あなたのプロジェクトでこのようなことをたくさんすることを計画しているなら、あなたはJavaScriptのライブラリを使うほうが良いでしょう。
上記と同じHTMLとPHPを使用すると、これはスクリプト全体です(ページにjQueryが含まれています)。私は少しはjQueryの一般的なスタイルとより一致するようにコードを締めましたが、あなたのアイデアを得る:
// handles the click event, sends the query
var function getOutput() {
$.ajax({
url:'myAjax.php',
complete: function (response) {
$('#output').html(response.responseText);
},
error: function() {
$('#output').html('Bummer: there was an error!');
}
});
return false;
}
それを試してみてください:http://jsfiddle.net/GRMule/WQXXT/
をjQueryのために急いで出て行くしないでくださいだけでまだ:任意のライブラリを追加することは、あなたがそれらを書いたかのように、数百または数千行のコードをプロジェクトに追加することと同じです。 jQueryライブラリファイルの中には、最初の例と同様のコードに加えて、ロット全体がとなっています。それは良いことかもしれませんが、そうでないかもしれません。プロジェクトの現在のサイズと将来の拡張の可能性とターゲット環境またはプラットフォームを計画し、検討します。
これがすべて必要な場合は、プレーンなjavascriptを一度書くと完了です。
ドキュメント
は、単純なし、AJAXを使用して、必要なメソッドを呼び出す以外、これを実行する方法はありません。 – TheVillageIdiot
あなたは知っています:PHPはサーバー上で動作しますが、JSはクライアント上で動作しますか?これは、このようには使えません。 – KingCrunch
待ち時間ではありません。 '<?php query(" hello "); ?> 'ページが読み込まれるとPHPによってレンダリングされますか?もしそうなら、彼はjs関数で 'query(" hello ")'の出力を得ることができます。 – TheVillageIdiot