• 締切済み

簡易DBでリンクをクリックすると表のデータを絞込みたい

JavaScriptだけで簡単なDB機能を使おうとしています。 FAQを作っていて、質問の内容によっていくつかのカテゴリに分類し、デフォルトでは全Q&Aをtable表示し、カテゴリ名(テキストリンク)をクリックすると、カテゴリに該当するQ&Aだけに絞り込んで表示するというものです。 いろいろなサイトを検索して、以下のような方法を見つけました。 ------------------------------ db = new Array; db[0]="番号,日付,質問,回答"; db[1]="001,2007/6/1,質問1,回答1"; db[2]="002,2007/6/2,質問2,回答2"; (同様に続く) ------------------------------ このようなDBがあり、ページ上の検索語入力欄に検索語を入れてボタンを押すと、dbの中で一致する語を含むものを、table化して表示するものです。 ※情報元:http://www.imymode.com/exp/js04.html この「検索語入力」を「テキストリンクをクリック」に変えて照合する方法をご存知の方はお教え頂けませんでしょうか。 質問カテゴリ名のテキストリンク(15件の予定)は、aタグにidを付与し、そのid名とdb内の文字列を照合するような形でできないかと思っています。従って、 db[1]="001,2007/6/1,質問1,回答1,id名"; のように、db側には質問が属するカテゴリのidも入れ、table化の際はid部分だけは表示しない、といった処理もできればと思っています。 説明足らずで申し訳ありませんが、宜しくお願い申し上げます。

みんなの回答

回答No.1

>aタグにidを付与し、そのid名とdb内の文字列を照合するような形 これはそのままやってもいいんじゃないでしょうか。 >db[1]="001,2007/6/1,質問1,回答1,id名"; これもこのままでいい気がします。 -------------------------------------------- <script> db[1]="001,2007/6/1,質問1,回答1,id名"; function search(sword) { //情報元に書いてあるようなソース } </script> <a id="tag1" href="javascript:search(this.id);">tag1</a> -------------------------------------------- こんな感じで動作するんじゃないかと思います。 タグだけでマッチさせるのであればindexOf関数ではなく、単純に比較演算でも良いかも知れません。 >db側には質問が属するカテゴリのidも入れ、table化の際はid部分だけは表示しない var resultLength = result.length; この部分を var resultLength = result.length - 1; にしてやれば希望の動作になりそうです。

すると、全ての回答が全文表示されます。

関連するQ&A