0

php/mysqlでデータ入力フォームを作っています。そこに、データベースを非同期的にクエリしてデータを取得する多くのドロップダウンとオートコンプリート テキストボックスを追加しました。クライアントとサーバーの間である種の相互作用が行われていることをユーザーに通知したかったので、要素を非表示のフォームに配置しました

 <div id="wait" style="background-color:white;position:absolute;top:240px;left:360px;width:70px;height:50px;visibility:hidden;border: 1px solid black;padding:20px;">
 <img src="images/wait.gif" style="position:relative;top:0px;left:25px"><br /><br />Please wait...
 </div>

そして、ajaxコンポーネントのメソッドhandleHttpResponseで、次のことを行いました

if (http.readyState == 4) {
  document.getElementById('wait').style.visibility = "hidden";
  alert('The server script has now completed');
} else {
  document.getElementById('wait').style.visibility = "visible";
}

上記の関数は、現在のページと ajax が必要なすべてのページに含まれているスクリプト ファイル ajax.js にあります。

これで、単一のドキュメントでは問題なく機能しましたが、次のクエリがありました

  • ANY PAGEでAJAXリクエストが実行されるたびに同様の操作を行いたい場合は、ユーザーに「アニメーションの再生とともに待機してください」というメッセージを表示する必要があります。各ページに DIV を配置する必要がないように、モジュールをどのように書き直す必要がありますか。どうすればそれについて行くことができますか?

    • 同様の機能を追加したいのですが、ページが読み込まれる前に追加する必要があり、プログレス バーも表示する必要があります。

    • 現在のページでこの機能を 3 つの場所で同時に使用しているとします。3 つの Please Wait メッセージが表示されますか?

私の質問が十分に明確であることを願っています。ありがとう

4

1 に答える 1

0

あなたがやろうとしていることを達成する方法があります。たとえば、PHP を使用している場合は、HTML を .inc ファイルまたは .php ファイルに配置して、複数のページであっても好きな場所に含めることができます。

  1. したがって、PHP を使用している場合は、次のようにしてみてください。

    <?php //inc_loader.php ?><div id="wait" style="background-color:white;position:absolute;top:240px;left:360px;width:70px;height:50px;visibility:hidden;border: 1px solid black;padding:20px;">
     <img src="images/wait.gif" style="position:relative;top:0px;left:25px"><br /><br />Please wait...
     </div>
    

次のように、必要な場所に上記のファイルを含めるだけです。

<?php include("inc_loader.php"); ?>

含めるコードは、使用しているサーバー側の言語によって異なります。

2. また、id="wait" を使用しているため、同じドキュメント内の複数の場所で同じコードを使用することはお勧めしません。ID はドキュメント内で一意である必要があるため、複数の場所で使用しても意味がありません。重複を避けたい場合は、 class ie class="wait" を使用してみてください。

それがあなたを助けたかどうか私たちに知らせてください。

于 2009-11-21T15:12:10.120 に答える