1

MySqlデータベースからデータを取得して表示するphpファイルがあります。しかし、データベースには100と言うデータがありません。しかし、私のphpファイルでは、を使用するだけで一度に6を表示することを計画しています。

LIMIT start_value, 6.

次に、下部に次のコードを含むパンがあります

<a href="index.html?start_value=start_value+6">1</a>
<a href="index.html?start_value=start_value+12">2</a>
<a href="index.html?start_value=start_value+18">3</a>
<a href="index.html?start_value=start_value+24">4</a>
<a href="index.html?start_value=start_value+30">5</a>
<a href="index.html?start_value=start_value+36">6</a>

したがって、問題は、誰かがindex.html全体の上のリンクをクリックすると、リロードされて煩わしいことです。リンクのいずれかをクリックした後、その特定のDIVをリロードするだけで、データベースからの新しいデータを表示する方法はありますか?

4

3 に答える 3

3

リンクをクリックした後に特定の DIV をリロードするだけで、データベースから新しいデータを表示する方法はありますか?

はいあります。XMLHttpRequestオブジェクトとDOMを使用する必要があります。一言で言えば:AJAX

最良の方法は、jQueryPrototipeなどのフレームワークを使用することです。

ここに例があります。この例では、「latest_scores.html」ページを別のページ「latest_scores.php」に置き換える必要があります。php スクリプトは、div 内に配置できる更新されたコンテンツを作成します。

于 2012-05-06T15:57:52.853 に答える
3

次の 2 つのオプションがあります。

  1. Ajaxを使用すると、JavaScript を使用してサーバーからデータを取得できます。これを使用して DOM を操作できます。Ajax の基礎はXMLHttpRequestオブジェクトであり、JavaScript の舞台裏でデータを完全に取得できます。Ajax はSame Origin Policyによって制限されていることに注意してください。

  2. iframesrc プロパティを設定することでコンテンツをロードできるフレーム (要素など)。

2 つのうち、Ajax ははるかに柔軟です。

参考資料/参考資料:


補足: DOM メソッドを直接使用できることは明らかですがXMLHttpRequest、ブラウザ間の違い (および完全なバグ) があることに注意してください。これは、jQueryPrototypeYUIClosureなどの優れたライブラリによってスムーズにすることができます。他のいくつかの。また、多くの便利なユーティリティ機能を提供するため、配管の詳細ではなく、解決しようとしている実際の問題に集中できます。

たとえば、jQuery を使用して Ajax リクエストをサーバーに送信し、サーバーが送り返す HTML フラグメントでページ上の要素を更新する方法を次に示します。

$("#target").load("get_the_data.php", {article: x});

つまり、get_the_data.php から HTML フラグメントをリクエストして、x 変数の値を含むパラメーター article を送信し、その HTML フラグメントを HTML id "target" を持つ要素内に配置します。ライブラリを使用しない場合、これは 10 行のコードで十分です。さて、それは多くはありませんが、それを何度も繰り返すと (そして、その過程で要素を ID で検索することに関する IE のバグに対処します)、それがどのように加算されるかがわかります。

上記の参考文献を読んで、ライブラリが何をしているのかを理解することをお勧めします (これは魔法ではありません) が、この作業を容易にするために人々が行った多大な努力を活用しない理由はありません。


たとえば、index.html?start_value=start_value+6 のように myaction を提供するページがある場合、次のようにすることができます。

setInterval(myaction, 20000); //every 20 seconds

function myaction() {
  $("#quoteContainer").load("index.html?start_value=start_value+6");
}
于 2012-05-06T15:54:35.257 に答える
0

ajaxが探しているものであるため、ajaxでコンテンツを簡単にロードできるjQuery javascriptライブラリを調べる必要があります。PHP はサーバー側の言語であり、サーバー上で動作し、動的ではありません。クライアント側で動作するものを探しています。それが Javascript です。

于 2012-05-06T15:54:30.283 に答える