1

ミュージシャンファインダープログラムのバンドリストが満載のテーブルがあります。すべての情報を含む.htmlまたは.phpファイルを1つだけ残しながら、ジャンル別に並べ替えたいと思います。

どうすればこれを始められますか?ほとんどのユーザーはnoscriptを持っているので、できればphpを使用し、JSを避けてください。こちらがテストページへのリンクです。どんな提案も素晴らしいでしょう、あるいは他の誰かがそれをした場所の単なる例です。
そして、これがペーストビンの表です。

ありがとう

また、SQLを回避することは私の上司の優先事項です。

編集:それで、明らかにこれはphpでは実行可能ではありません。私はjavascriptを使用したいと思います。またはJquery。これが単純なテーブルであれば、私は大丈夫ですが、明らかに私のものはより詳細であり、どこから始めればよいのかわからず、グーグルで何も見つかりませんでした。誰かがこれについて何か素晴らしいことを親切に提案したいのですが、正直なところ、他の誰かがそれを嫌う方法について読むためにここに来る人は誰もいません。私はstackoverflowについて質問しました。笑。

もう一度編集:わかりました。もっと探していました...そして、cssのクラスごとにすべての<tr>'
を作成してから、JS関数を使用して適切なクラスを除くすべてをに変更できないのはなぜですか?これは非常に簡単です。display:block;display:none;

4

4 に答える 4

4

いくつかのjavascriptを使用せずにページ上の要素を並べ替えることはできないため、@robertは正しいです。したがって、phpを使用してテーブルを並べ替える場合は、テーブルの内容を大きな配列などのある種のデータセットに入れることから始める必要があります。あなたが何をしようとしているのかを私が理解していることから、あなたのテーブルのすべての行があなたのソート可能なカテゴリの1つに分類されるということです。したがって、配列を定義するときは、各行がどのカテゴリに分類されるかを指定してから、そのフィールドで並べ替える必要があります。

したがって、配列定義は次のようになります。

$master_array[] = array( 
    'category' => 'acoustic',
    'tr_html' => '<tr><td> .... </td></tr>'
);

次に、カテゴリフィールドで配列を並べ替えます。少しグーグルすると、これに役立ちます。

次に、テーブルの作成に関しては、次のようにします。

echo "<table>";
foreach( $master_array as $key => $val ) {
    echo $val["tr_html"];
}
echo "</table>";

お役に立てれば...

于 2012-10-19T18:02:04.150 に答える
1

etc.プロパティを使用してphpで'Table'オブジェクトを$tbl = array(0 => $arr_row1, 1 => $arr_row2)作成すると、ループを使用してhtmlで$tblをレンダリングするviewメソッドを簡単に作成できます。(すべての$ arr_rowxは、キーと同じ列名を持つ連想配列です。)

次に、このメソッドを使用して、文字列列キーの$tblを順序付けまたは逆順に並べることができます。

public function order($str_key_name, $bool_reverse = false) {
    $code = "return strnatcmp(\$a['$str_key_name'], \$b['$str_key_name']);";
    usort($this->tbl, create_function('$a,$b', $code));
    if ($bool_reverse) $this->tbl = array_reverse($this->tbl);
    return $this->tbl;
}

整数列で順番にインデックスを再作成するには:

public function reIndex($str_index_name, $int_start_index = 0) {
    if ($this->tbl) {
        $num = count($this->tbl);
        for ($i = 0; $i < $num; $i++) 
            $this->tbl[$i][$str_index_name] = ($i + $int_start_index);
    }
    return $this->tbl;  
}
于 2012-10-19T18:02:05.033 に答える
0

JavaScriptで既存のテーブルプラグインを使用すると、JavaScriptで簡単に実行できることを実行するためにサーバーに戻るラウンドトリップが回避されるため、おそらく最適なソリューションになります。しかし、JavaScriptが最初のオプションではないと言っているのを見て、すべてのデータをPHP配列に格納することを選択した場合は、PHPでそれを行うことができます。

したがって、すべてのデータをPHP配列に入れることから始めます。次に、希望するフィールドで配列を並べ替える関数を記述します。これに利用できる多くのソートアルゴリズムがあります。

データのテーブルをデフォルトの順序で表示し、ユーザーが別の列を選択して並べ替えることができるリンクを追加します。各リンクで、次のように並べ替える列の名前を設定します。

   <a href="mypage.php?sort=name">Sort By Name</a>

次に、パラメータ「sort」を使用して、配列をHTMLテーブルにエコーアウトする前に配列をソートする方法を決定できます。

于 2012-10-19T18:00:07.737 に答える
0

私はjqueryを使用することになりました。JSをオンにしていない人は、ハハを並べ替えることができません。提案をありがとう。

于 2012-10-24T20:31:34.180 に答える