• ベストアンサー

テーブルで作った表をボタン操作で50音順や価格順に並び替える

アクセスありがとうございます。 以前よりテキストメインのホームページを作成していたのですが もう少し知的な機能も設定してみようと思いました。 そこで今まで作ってきたテーブルの表をユーザの操作により並べ替えられるようにしたいのです。 例えばボタンを押すことにより「名前順」「価格順」「発売日順」「人気順」等に並べ替えたいのです。 よろしくお願いします。 ちなみに、こないだ気合い入れてJavaスクリプトの辞典を2冊も買ってきましたが字ばっかりで、すぐ眠くなってどうしようもありません。 あと索引でも探してみたのですが並び替えのコマンドが、どうも見つかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • o84
  • ベストアンサー率31% (128/407)
回答No.5

javaScriptで実現する方法が載っているページを見つけました。

参考URL:
http://tohoho.wakusei.ne.jp/wwwxx038.htm
zyousuke
質問者

お礼

回答ありがとうございます。 お、なんか出来そうですね。 しかも、もっと、とんでもなく長いソースを予想していたのですがこれならいけそうです。 データが少ないからそう感じるだけかも分かりませんがとりあえずやってみます。 ところで今、学校でCGIスクリプトのためのPerl言語を教わっているのですが、これを使いこなすにはUNIXのコマンドも覚えなくてはならず結構苦しんでいます。 自宅にはUNIXの環境がないのでフリーサーバのアカウントをもらってコマンドを勉強しようと思ったのですがどこのサーバも利用できるコマンドが制限されていて使い物にならないことを知りました(もし、色んなコマンドが使えるサーバをご存じでしたらお教えください)。 そしてついにはLinuxを導入することを決意したのです。 たまたま昨日ディストリビューションを手に入れたので早速インストールしました。 そしてノートのデータは全部死にました。 それだけならまだしもログインできないというトラブルに陥ってやや発狂気味です。 幸いにもノートは普段から使っていなかったので被害は小さかったですが今度はメインに使っているこのコンピュータ(帰宅してから就寝までフル活用)にデュアルブートしようとしています。 今日は初心者用の入門書を買ってきたのでこれを熟読してから慎重に進めたいと思いますが果たしてどうなることやら。

その他の回答 (4)

  • onimotsu
  • ベストアンサー率36% (279/758)
回答No.4

>現在インターネットエクスプローラのシェアはどのくらいなのでしょうね。 巷ではIE90%、NN10%と言われていますが 私のHPのアクセスではIE96%、NN3%、他1%となっています。 >ビッグローブのユーザ専用サーバです。 なのでCGIは使えると思います(使えますよね???)。 ビッグローブは使えます。 ご質問のようなことは一般的にはCGIをしますが 私にはほとんどわかりません(-_-;)

zyousuke
質問者

お礼

返信ありがとうございます。 さすがにWindowsに添付されているだけあってIEユーザは多いですね。 残りの1%が気になりますね。 カチューシャとかですかね。 がんばってCGIを勉強して並び替えボタンを作成したいと思いました。

  • Adams2001
  • ベストアンサー率67% (70/103)
回答No.3

データ部分を頻繁に更新するんであれば、Javascriptで実装するのはちょっとまずいと思います。実装が大変な上メンテナンスも悪く、実行速度も遅いですから。 #Javascriptをオフにしている読者が見れなくなってしまいますし。セキュリティ向上や広告避けでオフにしてる人は結構いますよ。 ちゃんとしたRDBが使えない場合は(<自社サーバか、それに近いホスティングじゃないと使えませんが)cgiを利用して簡易データベースを組むのが一般的でしょう。フリーのcgiもいくつかありますし。 が、データ項目を設定するなどの必要最低限の設定に加え、見た目を調整したりソート方法の切り換えができるようにしたり、ということになると改造しなければなりません。当然、改造できるだけのcgi(主にperl)に関する知識が必要です。 #Unixの経験があればPerlを覚えるのは楽だと思いますが、0から覚えるのはかなり大変です。 発想を転換してですね、例えば表部分はExcelを利用して作成すれば(HTMLで出力可能ですから、TABLE部分だけ持ってくる)ソート後のページを個別に作成するのはそれほど大変ではないと思います。 それを通常のリンクで切り換えて表示すれば、読者からはあたかも「並び替えがおこなわれた」ように見えます。検索機能が不要であれば、こういう手もアリだと思います。 実際のところ、こっちが便利な機能を提供しても、その使い方を学習するくらいなら使わない、というのが一般的な反応です。なもんで、あまり完成度の高さは追求せずに、そこそこ使える、実装とメンテナンスが楽、なんて線を狙うのがいいのかなぁ、と思う今日この頃です。

zyousuke
質問者

お礼

返信ありがとうございます。 なるほど様々な面から見てJavaスクリプトは不適ということが分かりました。 HTMLファイルを複数用意して仮想的に並び替えを実行する方法については ユニークな考えだと思いました。 が、しかしこの方法だと並び替え方が2種類、3種類と増えるにつれ サーバの使用容量も2倍、3倍となってしまいますね。 しかも自分、実はエクセル持ってません。 ずっと前に買ったパソコンに1,2,3とかいうマイナーなソフトがバンドルされてましたがソート機能が使えたかどうか定かではないですし それを確認するためにパソコンを引っぱり出してくるのも気が引けますね。 実は、たまたま後期からperlの授業が始まります。 こいつを1から勉強して並べ替えコマンドを覚えるのも悪くないと思いました。 よーく考えてみたら今すぐに並び替え機能が必要というわけでもないので がんばって勉強することとします。

  • o84
  • ベストアンサー率31% (128/407)
回答No.2

javaScriptで並び替えですか!! できないことはないですが、めちゃくちゃ面倒ですよ! テーブルに書いてある内容をひとつひとつ <script></script>の間で順番をつけて変数に入れておいて、 並び替え条件が指定されたらそれを並べてテーブルを作る、 くらいの覚悟があれば、手間は凄まじいものがありますが 割と簡単に(?)できるかなぁ。 私はやりたくないですねー。 別のファイルにCSV形式でデータだけ入れておいて、 そして表示したいHTMLファイルから条件を指定して、 その条件にあったデータをjavaScriptで別ファイルから 読み出して表示するという、簡単な検索機能ていどは できたはずですが、それは並び替えじゃないですしね。 HTMLはあくまで固定のテキストを表示するファイル形式 ですので、並び替えのようなことには向きません。 あくまでjavaScriptもHTMLの飾りですし。 お使いのサーバーがCGIやサーバーサイドスクリプトを 許可しているのでしたら、それを使うのが一番で、 何より簡単です。あっという間にできます。

zyousuke
質問者

お礼

回答ありがとうございます。 めちゃくちゃ面倒なのですか!!! それは参ります。 ところでサーバはあの有名なビッグローブのユーザ専用サーバです。 なのでCGIは使えると思います(使えますよね???)。 もしよろしければ、お手数ですがCGIの使い方を教えていただけませんか。 あと、どれくらい大変なのか見当もつきませんがJavaスクリプトのやり方も教えていただければうれしいです。

  • onimotsu
  • ベストアンサー率36% (279/758)
回答No.1

ここに参考になるのがあります↓ http://www.openspc2.org/reibun/javascript/table/002/index.html 私には難しくてできませんので補足は遠慮願います。

参考URL:
http://www.openspc2.org/reibun/javascript/table/002/index.html
zyousuke
質問者

お礼

返信ありがとうございます。 お教えいただいたコマンドは、どうもネットスケープで動作しないようですね。 しかしネットスケープでもオークションサイト等で並び替えボタンが使えるので、この他にも並び替えのコマンドが存在するのだと思いました。 もう少し他の方からの返信も待ってみたいと思います。 ちなみに現在インターネットエクスプローラのシェアはどのくらいなのでしょうね。

関連するQ&A