THE HAM MEDIA BLOG

JavaScriptなしでPHPでフォントサイズを変える「大・中・小」ボタンを実装する方法を考える(未完成)

Clip to Evernote このエントリーをはてなブックマークに追加
カテゴリ:
PHP
タグ:
PHP
フォントサイズ

フォントサイズを変える「大・中・小」ボタン実装

先日のエントリーで、『フォントサイズを変える「大・中・小」ボタンを実装する方法』というのをエントリーしたのですが、沢山の方に見てもらえたようで、かなりびびってる自分です。。。

もっとちゃんと汎用的なのを書けばよかったです。

そして、JavaScriptだけで実装した場合、JavaScript OFF環境だと当然のごとく動作しません。cookieもPHPを使えばOFF環境でも動作します。

ということで、PHPの知識は殆どないですが、PHPを使って実装できないかを考えてみます!

PHPでフォントサイズを変える「大・中・小」ボタン実装を考える

基本的にはJavaScriptが使える環境では、前回と同じようにJavaScriptでフォントサイズが変更されるようにしておきます。OFFの時に動作するようにするので・・・どうしたらいいんだ?

PHPってクリックイベントとかあったっけ?と思って調べたのですが、ちょっとそのへんがわからない。。。

悩む・・・とGETとPOSTがどうとかを思い出したので、GETっぽく作ればいいじゃまいか?と思ったので、GETっぽくしてみる。JavaScriptが使えないのが前提なので、ボタンをリンクにして、hrefにGETっぽい値を埋め込んでみた。

HTML

<ul id="fontChange" class="clearfix">
<li id="fontS"><a href="?fontsize=fontS">小</a></li>
<li id="fontM"><a href="?fontsize=fontM">中</a></li>
<li id="fontL"><a href="?fontsize=fontL">大</a></li>
</ul>

クリックすると、ページが同じページで遷移してしまうが、とりあえずはしかたない。。。

あとはこの値をPHPで取得して、cookieに保存とclassのをセットする。

PHP

class="<?php
$cookie=$_COOKIE["fontSize"];
$fontSize=$_GET["fontsize"];
if($fontSize){
    echo("$fontSize");
    setcookie("fontSize", $fontSize);
}else{
    echo("$cookie");
};
?>">

でも、これだけだと、setcookieのところでエラーがでる。ページ読み込み完了前での動作じゃだめだってことか!?

.htaccessに「php_flag output_buffering On」と入れると解決するらしいので、とりあえずそれを入れておく。

これで、上記のPHPを文字サイズを変更させたいところにセットすると、classが自動で変わってくれる・・・はず?

検証継続中

ローカルのテスト環境では、これで動作したのですが、PHPのセキュリティーとか自分は勉強中なので、とりあえずデモはまだ用意していないです。まだ調べ足りない気がするので、とりあえず自分用のメモとして残しておきます。

もっといいアイディア・方法がありましたら是否、ご教授いただきたいです>< もっと勉強しないと〜(PHPも)。

この記事へのコメント
そーするよりもcssの出力をphpで出力替えた方が良い気がするのであるが……。
パフォーマンス的にも………。
如何でしょうか?
Posted by juner at 2010年05月23日
>junerさん
PHPでというのは強引すぎましたね(;´Д`)
この方法よりは、おっしゃる方法の法がよさそうです。
ただ、PHPで出力を変えるというのは、結局CSSのリクエストが増えるので、パフォーマンスで考えたら、良い方法ではなさそうなので、以前エントリーしたJSとcookieでというのがよさそうです。
Posted by ハム at 2010年06月13日
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

トップに戻る