-2

ボタンが押されたときにいくつかの情報を処理するPHPページがあります。この情報の1つは、クエリを処理することです。次に、クエリの結果を別のページのテーブルに配置します。クエリ結果をテーブルに入れる方法は知っていますが、別のページのテーブルに行ごとに渡す方法がわかりません。誰かが私を助けたり、正しい方向に向けたりできますか?

4

1 に答える 1

1

私がこれを正しく理解していれば、これにはAJAX(および必要に応じてJavaScript)が必要になります。実行したいのは、生成関数を呼び出して、解析可能な形式(JSON、XML、名前を付ける)を返すようにすることです。

そこから、JavaScriptのDOM操作関数を使用してテーブルに追加します。

生成部分

次のように配列形式でデータを取得していると仮定します。

$row = array('column 1','column2');

このような行が大量に発生するか、1つだけになります。書き直さなくても両方のケースを処理するスクリプトを作成します。行を取得するたびに、それを非連想配列に追加し、$RowArrayと呼びます。したがって、すべての行で、を呼び出すことになります$RowArray[] = $row;

これで、PHP側はほぼ完成しました。今必要なのは、それをクライアントにエコーバックすることだけです。これ以外は何もエコーしないようにしてください:echo json_encode($RowArray);。これにより、配列が完全なJSONオブジェクトになるようにフォーマットおよびシリアル化されます。

JavaScript側

簡単にするためにjQueryを想定します。目的は、JSONオブジェクトを読み取り、テーブルに行を追加することです。テーブルのIDは#MyTableであると想定します。

AJAX呼び出しは次のように実行されます。

$.ajax({
  url: "your_url.php",
  dataType: "json",
  type: "post",
  success: function(d) {
     // Your code here
  }
});

successオブジェクトが正常に解析されるとハンドラーがトリガーされ、変数がdオブジェクトになります。このオブジェクトは、各要素がオブジェクトであるJavaScript配列になります。ここで行う必要があるのは、ループしてdエントリごとに行を作成することだけです。

success: function(d) {
   for(var i=0; i < d.length; i++) {
      var newRow = $("<tr></tr");
      for (var k in d[i]) {
          newRow.append($("<td></td>").text(d[i][k]));
      }
      newRow.appendTo($("#MyTable"));
   }
}

出来上がり、6行の動的AJAX化テーブル!

于 2012-11-18T20:57:13.740 に答える