3

PHPスクリプトの出力をdivにロードするajaxがあります。次に、ユーザーが出力内のリンクをクリックして、ページ全体をリロードせずにdivを書き換えられるようにしたいと思います。これは原則として可能ですか?コードが次のようになると想像してください。

html

<div id="displayhere"></div>

php1出力

echo '<a href="javascript:void(0);" onclick="reLoad(par1,par2,par3);">ChangeToNew</a>';

JS

function reLoad(par1,par2,par3) {
...
 document.getElementById("displayhere").innerHTML=xmlhttp.responseText;
xmlhttp.open("GET","php2.php?par1="+par1 etc.,true);
xmlhttp.send();

php2

$par1 = $_get['par1'];
change database
echo '<a href="javascript:void(0);" onclick="reLoad(par1,par2,par3);">'.$par1.'</a>';

これは原則として機能しますか、それともアプローチに欠陥がありますか?

ありがとう。

4

2 に答える 2

6

あなたが説明するのは、標準的な日常のAJAXです。PHPは方程式とは無関係です。JSは、サーバーが送信したものをすべて受信するだけです。あなたの場合、サーバーの応答がPHPによって処理されていることが起こります。ただし、JSとPHPは直接的な関係を持っていません-できません-。

したがって、原則は問題ありません。ただし、実際にそれを使って何をするかは、もちろん、それがどれだけうまく機能するかに影響します。

考慮事項:

  • PHPは何をしますか?これはロード時間に影響を与える可能性があります
  • 応答のキャッシュについてはどうでしょうか。これが該当する場合、PHPは以前に生成されたものを計算する必要がありません。
  • UI-コンテンツがフェッチされていることをユーザーに認識させますか?

等。

于 2012-07-09T16:43:20.347 に答える
0

私はjQueryの使用に慣れているので、それを使用した例を示します。

リンクを次のように作成する場合

<a href="file_to_run.php?par1=1&par2=2&par3=3" id="do_this">Click Me</a>

次に、次のようにコードを記述できます。

<script>
  $("#do_this").live('click', function(){
    var link_url = $(this).attr('href');
    $.ajax({
      url: link_url,
      success: function(data) {
        $('#displayhere').html(data);
      }
   return false;
 };
</script>

jQueryを使用する場合は、必ず.live('click'、function(){})メソッドと.click(function(){})メソッドを使用してください。そうしないと、動的に作成された要素が認識されません。また、必ずfalseを返します。

于 2012-07-09T17:04:21.917 に答える