MB-Support

パソコン初心者のサポートページ

ページ送りリンクの変更と全角英数字による検索を可能にしました


サイト内のページ送りリンクの表示を変更しました。 単純に数字を表示していたのですが、クリックするのが面倒な表示でありました。 また、ページリンクは 6 〜 10 に制限しているため、それ以上のページがある場合は送ってく事で表示されます。 例えば、15 ページあるならば、初期状態では1〜6ページまでの送りリンクしか表示されませんが、6 ページ目に移動した時、4〜9ページへのリンクが表示されます。 中間のページにいる場合は、「最初(1ページ目に移動する)」「最終(最終のページに移動する)」のボタンリンクが表示されます。 「最初」のボタンはアドレスが間違っていたらしく、これを正しく修正しました。



ページリンクはメニューの上下に表示されますが、下までスクロールして読み進めて、下部のページリンクをクリックした時(たとえば「次へ」ボタンをクリックした時)、ターゲットの指定により次のページの先頭に移動する様にしました。 メニュー自体は JavaScript で表示され、ページを再読み込みせずに更新できます。上からメニューを読みすすめ、探している情報が無い場合は下部のページリンクで次へ進み、スクロールさせずに次のページの上から参照する事ができます。



各カテゴリーのトップページのメニューとは別に、一部だけを更新しないサイトでもページ送りリンクを変更してあります。 こちらは、クリックする事でページ全体が更新されるので、ターゲットを指定する必要はありません。「管理人の日記」「掲示板」「シャーロックホームズ」など、ページが動的に生成されるページで変更を適用しました。

ページが静的な HTML ファイルの場合、現在のところ変更はしていません。従来通り数字によるリンクとなります。 今後変更する可能性はありますが、手書きによるページリンク自体を廃止する可能性もあります。 例えば、ページが表示される度に、データベースから自動でページリンクを生成して、ページの ID により JavaScript で表示するなど。 ただし、手書きの方が融通が効くのは確かです。どうなるか今のところ不明です。



ページ送りリンクの変更

以前から要望があった、検索フォームに入力する文字で、全角英数字による検索ができる様になりました。 サイト内では事情が無い限り全角のひらがな、カタカナ、半角の英数字を利用しています。 例えば、Windows Vista(ウインドウズビスタ)が含まれる日記を検索する場合、半角の「Windows Vista」と入力して検索した場合、「Windows」と「Vista」の両方の文字が文章かタグに含まれた投稿を表示します。 これは今までと同じですが、全角で「Windows Vista」と入力された場合、半角でデータベースに入力された「Windows Vista」を検索する事ができませんでした。

全角で入力された英数字を、検索する前に半角に変換する事により、半角と同じ検索結果を得られます。英数字に半角と全角が混合している場合も、すべて半角に変換されるので大丈夫です。

$word(フォームに入力された文字を入れる変数)
//タグを除去して格納
$word = htmlspecialchars($_GET[keyword]);
//半角カタカナを全角カタカナへ
$word = mb_convert_kana($word, 'KVrn');

mb_convert_kana は、文字列を半角から全角へ、またその逆に変換する事ができます。使い方は、結果を格納したい変数=mb_convert_kana(対象とする文字列, '変換方法を指定する文字')となります。 上の例では、検索フォームからGETで受けとり、タグを除去して変数 $word に格納しています。 $wordを「KVrn」の指定で、半角全角を変換して再び$wordに格納しています。

大文字の「K」は、「半角カタカナ」を全角「カタカナ」へ、大文字の「V」は、濁点付きの文字を1文字に、小文字の「r」は、「全角」英字を「半角」英字に、小文字の「n」は、「全角」数字を「半角」数字に変換する文字指定です。 これを並べると、「KVrn」となります。

検索対象となるデータベースに大文字の英数字が存在した場合、この作業により検索する事は出来なくなります。両方を検索させる場合は・・・ 同じ単語の全角、半角を別変数に代入してデータベースに参照させる手もあります。 たぶん、もっと都合が良いやり方があると思われますが、このサイトでは全角英数字は事情が無い限り使わないので、ほぼ検索できると思います。





Copyright © 2018 MB-Support パソコン初心者のサポートページ All Rights Reserved.

管理人サイト閲覧方法プライバシーポリシー著作権/免責事項