2010-11-18 8 views
0

(1)サーバー側では、DBからデータを取り出し、JavaScriptの配列/行列に変換するPHPコードを用意しています。PHP_OUTPUTJavaScriptをJavaScriptに変換してからHTMLに戻す問題

(2)クライアント側では、PHP_OUTPUTを取り込んでHTMLテーブルとしてレンダリングするJavascriptコードがあります。

残念ながら、GoogleはJavascriptを読んでいないので、GoogleにHTMLテーブルの内容を表示させたい場合は、ページの実際のHTMLを書き留めておく必要があります。だから今私はJavascriptコードによって作成された同じHTMLテーブルを作成するために、新しいPHPコードを必要とします。

明らかに、HTMLテーブルをレンダリングするすべてのJavascriptコードをPHPで書き直すことは間違いありません。コードの書き換えは私があまり好きではないスポーツです。

もう一つの方法は、(可能ならば、私は知らない)に何らかの方法である:

A)している(1)(2)、

B)にPHP_OUTPUTを渡すために、次に(2) HTMLテーブルを作成し、テーブルのHTMLソースをサーバーに送り返します。

c)最後に、単純にechoでソースを書き留めます。

これは複雑ですが、は、ほとんど0に書き込まれるコード量を減らします

しかし、このようなことを行う簡単な方法はありますか?


コメントは説明をお願いしplzは、私が書いたものを理解してほしいです。

ありがとうございました。

+1

是非。そのPHPのテーブルを生成する10分の仕事のMAXを書く必要があります書く。おそらくあなたがこの質問をした時間よりも短いです。 – Zlatev

+0

@Zlatev:もし私があなたに書くコードを与えたいならば。冗談だ。私はそれがあまりにも混乱したくないので、私は質問のすべてを説明しなかった。単純なテーブルをダンプするPHPを書くことは問題ではない、問題は、JavacriptによってレンダリングされたHTML TABLEが非常に複雑で、文字列/ int/dates間のレンダリングを区別するための各列のクラスを含み、パラメータを特別なフォーマットで保存したいと思っています。ヘッダを変更してカラムのタイプを定義することができます。 –

+0

これはアルファレベルのコードなので、これは非常に有用ではありませんが、これはかなりきれいです。http://developer.yahoo.com/yui/theater/video.php?v=glass-node –

答えて

1

PHPでDBデータを何らかの隠しdivにダンプすることはできませんか?インデックス作成のためのものであれば、必ずしも人間が読めるテーブル形式である必要はありません。

+0

いいえ、ページサイズが大きくなりますほぼ二倍 – ajreal

+0

ajrealが言ったことのほかに、私は、ダンプされたデータが「表示:なし」DIVの中にあると見て、無視していると思う。 –

+0

真実かもしれませんが、javascript – Zlatev

3

あなたがサーバー側でHTMLを作成できるのであれば、なぜJavaScriptが必要なのですか?私は、最も簡単な方法は、あなたが必要とするHTMLを作成し、一緒にJavaScriptを取り除くPHPコードを使用することです。

+0

動的にレンダリングされるJavascript動的なテーブルは非常に便利で、サーバー側の呼び出しに毎回繰り返されることなく、クライアント側で非常に高速に行をソートできます。とにかくこれは問題のポイントではありません。今ではサーバー上でPHPはHTMLを作成しませんが、クライアントサイドでJavascriptで解釈されるJavascriptコードを作成します。 –

+0

@Marco Demaioでは、サーバー上のPHPでHTMLテーブルをレンダリングし、サーバーに戻すことなくJavaScriptで並べ替えることができます。あなたはHTMLを生成するJavaScriptを生成するPHPを持っていると言っているように聞こえます...なぜ、中間の人間を切り取らないのですか? –

+0

あなたの返信ありがとう。あなたがもっと私を説明できるなら、それはいいだろう。私はあなたが言うことをすることができることを知っていますが、JSを使ってテーブルをどのように並べ替えるのですか?すべてのテーブルの行/セルを1番目に移動し、セル内のすべてのデータをメモリに格納し、これらのデータをメモリ内でソートし、最後にテーブルをHTMLでレンダリングするには、JSオブジェクトが必要です。私のPHPコードでは、このタイプのJSオブジェクトがすでにメモリに格納されています。このようにして、このJSオブジェクトはすべての行/セルデータをメモリに格納するためにテーブルから1番目に移動する必要はありません。 –

関連する問題