FC2 template memo

スポンサーサイト

  • --------T--:--:--+09:00
  • permalink
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

検索がヒットしなかったときの処理

FC2 blog では検索がヒットしなかった場合には何も出力されません。このためユーザにとって少々わかりにくいものとなっています。テンプレートでは直接の解決策はありませんので、私の作成したテンプレートでは jQuery をつかって検索がヒットしなかった場合にはコメントを出力する処理を加えています。


// 検索フォーム補助処理
var search_elem      = $("div#search_result", main_elem),
    search_list_elem = $("ul.search_result_list", search_elem),
    search_list_sum  = search_list_elem.children().length,
    search_word      = $("div.header > h2 > span#search_word", search_elem).text(),
    del_count        = 0;

$("form.search_form > p.form_search_text > input", search_elem).attr("value", search_word);

for(var i=0; i<search_list_sum; i++){
  var search_li_elem = search_list_elem.children().eq(i),
    date           = search_li_elem.children("span.time").text();
  
  if(!date.match(/\d/g)){// 日付に数値がなくエラーっぽい場合
    search_li_elem.empty();
    del_count++;
  }
}
if(search_word.replace(/\s|(%u3000)/g,"") == ""){// 空白削除後、検索語句がない場合
  search_list_elem.html("<li>検索語句が入力されていません。</li>");
}else if(search_list_sum == del_count||search_list_sum == 0){// li要素の合計数と削除した要素数が一致、または合計数が0の場合
  search_list_elem.html("<li>検索結果はみつかりませんでした。</li>");
}

検索語句が入力されていない場合の処理を加えています。また、なぜか存在しない空白の記事が検索にヒットする現象が発生していたので、日付が存在しない不正な記事については削除しています。原因はちょっとわかりませんが、私の場合は "test" と入力するとそういった現象が起こったので、もしかすると削除したデータが残ってしまっているののかもしれません。

関連記事

コメント

コメントの投稿

コメント

コメントは受け付けていません。

トラックバック

trackback URL
http://work4uing.blog.fc2.com/tb.php/10-62e2885c

トラックバック

トラックバックは受け付けていません。

プロフィール

検索フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。