MTまとめサイト > コンテンツ > 複数のブログを構築しているケースで、検索をブログ(複数選択可)指定して行いたい

複数のブログを構築しているケースで、検索をブログ(複数選択可)指定して行いたいこのエントリーをはてなブックマークに追加 [コンテンツ]

検索対象とするブログIDを検索フォームのIcludeBlogsパラメータに指定して、検索フォームが送信される直前に、JavaScriptを利用してチェックボックスの値を取得することで実現できます。

  1. <script type="text/javascript">
  2. // 検索フォームが送信される直前に呼び出される関数です
  3. function checks2param (f) {
  4. // 検索対象となるブログのIDを保持する変数です
  5. var blogs = new Array ();
  6. // 常に検索対象として含めるブログのIDを取得しておきます
  7. if (f.IncludeBlogs.value) blogs.push (f.IncludeBlogs.value);
  8. // MTBlogsで回して,チェックボックスのチェック状態を調べています
  9. // チェックされていればブログのIDを変数に追加します
  10. <MTBlogs>
  11. if (f.IncludeBlogs<$MTBlogID$>.checked) blogs.push (<$MTBlogID$>);
  12. </MTBlogs>
  13. // 最後に検索パラメータに検索対象となるブログIDをコンマ区切りで設定します
  14. f.IncludeBlogs.value = blogs.join (',');
  15. }
  16. </script>
  17.  
  18. <!-- 検索フォームが送信される直前にチェックボックスのチェック状態を調べるためのJavaScriptを呼び出しています -->
  19. <form action="<$MTCGIPath$><$MTSearchScript$>" onsubmit="checks2param(this); return true;">
  20. <strong>検索対象:</strong>
  21. <!-- MTBlogsで回して,ブログの数だけチェックボックスを作っています -->
  22. <ul><MTBlogs>
  23. <li><input type="checkbox" name="IncludeBlogs<$MTBlogID$>" /><$MTBlogName$></li>
  24. </MTBlogs></ul>
  25. <!-- チェックボックスに依らず,常に検索対象に含めるブログのID -->
  26. <input type="hidden" name="IncludeBlogs" value="1" />
  27. <input type="text" name="search" value="検索ワード" />
  28. <input type="submit" value="検索" />
  29. </form>

この記事は参考になりましたか?

   

3人中、1人が参考になったと投票しています。

ページの先頭へ戻る▲