PHPでの文字サイズ変更方法とクッキー情報の利用方法について

このQ&Aのポイント
  • PHPでの文字サイズ変更方法とは?javascriptを使用しない方法を解説します。
  • PHPでのクッキー情報の利用方法とは?文字サイズの取得と書き換え方法を詳しく説明します。
  • PHPの経験が浅い方に向けて、分かりやすく詳しく教えます。
回答を見る
  • ベストアンサー

【PHP】 文字サイズの変更について。

javascript での文字サイズの変更は function で document.body.style.fontSize これを利用して変更できますが・・・ javascript を利用せずPHPで文字サイズを変更させるにはどうやったら良いのでしょうか? また、PHPでクッキー情報を利用する場合、クッキー情報から文字サイズを取得方法、書き換え方法などどの様にしたら良いのでしょうか? 質問は以上2点です。 できれば、私はPHPの経験が浅いので、分かりやすく詳しく教えて頂けると非常に助かります。 中途半端な知識で対応できず苦しんでおります。 何方か、どうか、教えて下さい。 宜しくお願いします。

  • PHP
  • 回答数4
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • mat-21
  • ベストアンサー率56% (91/162)
回答No.4

No2.No3の者です。 ▼ 例)aaa.php のページ <form action="bbb.php" method="post"> <input type="hidden" name="sizeL" value="16"> <input type="hidden" name="sizeM" value="12"> <ul id="box"> <li><a href="#">標準</a></li> <li><a href="#">拡大</a></li> </ul> </form> 上記だけですと【標準】をクリックしても【拡大】をクリックしても、何も反応しませんよね。記述ミスかな? Form内の各value値を送信するには「submit」で送らなくてはなりません。 であるならば、ただ単に、 <form name="form1" action="bbb.php" method="post"> <input type="hidden" name="sizeL" value="16"> <input type="hidden" name="sizeM" value="12"> <ul id="box"> <li><a href="javascript:form1.submit()">標準</a></li> <li><a href="javascript:form1.submit()">拡大</a></li> </ul> </form> で良いです。 ただ【標準】をクリックしても【拡大】を押しても同じ内容を送信します。当たり前ですが(^_^;) この場合、「bbb.php」では、 $_POST['sizeL'] → 16 $_POST['sizeM'] → 12 を受け取ります。 でも、たぶん目指すものは【標準:12】or【拡大:16】で違う値を送信したいですよね。 標準をクリックすれば、送信したい値を12 拡大をクリックすれば、送信したい値を16 という風に切り替えたいのではないでしょうか? この場合、送信したい値のnameを「size」としましょうか。 標準をクリックすれば、name="size" のvalue値を value="12" 拡大をクリックすれば、name="size" のvalue値を value="16" すればいいだけですが、HTMLだけではそれができません。 で、JavaScriptを使います。 ▼JavaScript <script language="javascript" type="text/javascript"> <!-- function changeSize(fsize){ // ↓fsizeが12ならname"size"のvalue値を、空から「12」に変える // ↓fsizeが16ならname"size"のvalue値を、空から「16」に変える document.form1.size.value = fsize; // ↓form送信 document.form1.submit(); } //--> </script> ▼FORM <form name="form1" action="bbb.php" method="post"> <input type="hidden" name="size" value=""> <!-- ←value値を空にしておく --> <ul id="box"> <li><a href="Javascript:changeSize(12)">標準</a></li> <!-- 上記JavaScriptを実行 --> <li><a href="Javascript:changeSize(16)">拡大</a></li> <!-- 上記JavaScriptを実行 --> </ul> </form> で宜しいですか? ブラウザ実行確信していないので、不動作でしたらごめんなさい。また誤植もあるかもしれません。。。。

yorosiku_orz
質問者

お礼

度々恐縮です。 なるほどです!記入ミスでなはなかったです。(汗) 今回、こんなに的を得たご回答を度々下さって! すごく嬉しく思ってます。(感謝) 実は、質問は初めてでして、ちょっと不安でした。(汗) 今回、お陰さまで私のように中途半端な知識者でも理解する事ができました。 また、質問するかもしれませんが、その際は、また宜しくお願いします。 でわ今回、非常に丁寧に詳しく十分すぎるご回答を気持ち良く頂いたので、ベストアンサーに選ばさせて頂きます。 貴重なお時間をとらせてしまいましたが、本当に本当に有難うございました。感謝感激な思いです。

その他の回答 (3)

  • mat-21
  • ベストアンサー率56% (91/162)
回答No.3

No2の者です。すいません。ところどころ間違いありましたね(汗) >・ <script> とは、JavaScript の事なんでしょうか? ですです。細かく書くと文字数が足りなくて^_^; 省略しちゃいました。 <script language="javascript" type="text/javascript"> <!-// function fontchange(fsizeNum){ document.changefsize.fsize.value=fsizeNum; document.changefsize.submit(); } //--> </script> >・ fontchange(0)" の所は、URL?fontchange(0) としなければならないのでしょうか? これ私のミスです(汗)。form送信の事ですので、本当は画像でやると思うので、以下が正確かな.... <li><img src="標準.gif" alt="標準" width="30" height="20" onclick="fontchange(0)" /></li> <li><img src="拡大.gif" alt="拡大" width="30" height="20" onclick="fontchange(1)" /></li> 各ボタンをクリックで、javascript関数「fontchange」を発動させて「fontsize.php」へ情報をpostで送っています。 ※<a link>が無いので、ボタンにカーソルを当てても指に変わらないので、その方法はCSSで指定できます。 ってことで、 >・ submit(); これは何を意味してるのでしょうか? はOKかな。。。。。 >・ form の name と id はどこで効果があるのでしょうか? これは私の癖で、ついつい書いちゃいました(汗) nameとidをセットで記述する癖になってるもんですから。。。ですので、この場合ID属性は必要ありません。 Javascript関数に必要なのは、FormNameだけですから..... 補足ですが、ブラウザ表示確認していないので、あくまで参考程度にしてもらえると幸いです。 でも、流れ的には、こんな感じというのがわかってくれるかな~っと思った次第ですm(_ _)m...恐縮です。

yorosiku_orz
質問者

補足

こんばんは。いえいえ、私の知識不足と理解力の悪さです。(汗) 何度も詳しく返答して頂いて恐縮です。非常に分かり易くて助かってます。 それで、質問の返答の件ですが…なるほどです。 あと、一つだけ、どうしても理解できないところがあるのですが 今 <ul> のリストは CSS の id 指定でボックスを作成し、画像ではなく、単なるリンク文字で【標準】 【拡大】とさせてるのですが、この場合… 少し質問内容は代わり、単なるデータ渡しについての質問なんですが(汗) form の post 指定で aaa.phpページ から bbb.phpページへ、【標準】 の数値(12)または【拡大】の数値(16)のデータだけを送りにはどうしたらよいのでしょうか? ▼ 例)aaa.php のページ <form action="bbb.php" method="post"> <input type="hidden" name="sizeL" value="16"> <input type="hidden" name="sizeM" value="12"> <ul id="box"> <li><a href="#">標準</a></li> <li><a href="#">拡大</a></li> </ul> </form> ▼ 例) bbb.php のページ $sizel =htmlentities($_POST["sizeL"]); $sizem =htmlentities($_POST["sizeM"]); <?php echo $sizel; echo $sizem; ?> これで実際、作成したリンク文字をクリックして確認して見たのですが、データが渡されていませんでした(汗) 何度も質問して本当にすみません。(汗)

  • mat-21
  • ベストアンサー率56% (91/162)
回答No.2

やり方はいろいろあると思うのですが、私は以下のようにやってます。 まず、文字サイズ変更のボタンを配置します。 私の場合<小>はあまり意味のない効果なので、 <標準>と<拡大>の2種類にして、FORMのPOSTで送信します。 CSSは3種類準備します。 ★文字サイズに依存しない共通CSS(common.css) ★文字サイズ標準の場合のCSS(defult.css)例)p { font-size:12px; line-height:16px; } ★文字サイズ拡大の場合のCSS(big.css)例)p { font-size:14px; line-height:18px; } で、 <標準>を押した場合は、defult.cssを読み、 <拡大>を押した場合は、big.cssを読む といった感じです。 で、それをPHPで制御するわけですが、 現在のページだけを操作するだけでしたら、それほど難しくはないと思うのですが、 例えば<拡大>を押したら、他のページも、ずっと拡大を反映させなければなりません。 よって、COOKIEを利用します。 ただし、PHPの「setcookie()」はページを読み込む前に発動させなければなりません。 ですので、文字サイズ変更とSETCOOKIEを発動させるPHPを別ファイル(fontsize.php)に作り、 表示HTML(content.php)から(fontsize.php)へpostで送信し(fontsize.php)で制御して (content.php)に自動で戻ってきます。 この際、cookieに変更された文字サイズ変数が格納されていますので、 (content.php)に戻って再表示される際に、そのcookie値を読み込んできますので、 if分で分岐させたCSSを読むといった感じです。 本来は、標準を押した場合は、Cookie削除の方が良いと思いますが..... 幾分、ブラウザ確認していないので、間違い、不動作するかもしれません。ご了承下さい。 ▼表示HTML(拡張子PHP)例)content.php ※省略しています <head> <link href="common.css" rel="stylesheet" type="text/css" /> <?php if($_COOKIE['fontsize'] == 1){ // cookieの'fontsize'が1の場合:拡大CSS読む ?> <link href="big.css" rel="stylesheet" type="text/css" /> <?php }else{ // cookieの'fontsize'が1以外の場合:標準CSS読む ?> <link href="defult.css" rel="stylesheet" type="text/css" /> <?php } ?> <script> function fontchange(fsizeNum){ document.changefsize.fsize.value=fsizeNum; document.changefsize.submit(); } </script> </head> <body> <form name="changefsize" id="changefsize" method="post" action="fontsize.php"> <input type="hidden" name="fsize" value=""> <input type="hidden" name="lasturl" value="<? echo $_SERVER['PHP_SELF']; ?>"> <ul> <li><a href="fontchange(0)">標準</a></li> <li><a href="fontchange(1)">拡大</a></li> </ul> </form> </body> ▼fontsize.php(例) <?php setcookie('fontsize',$_POST['fsize']); header('Location:'.$_POST['lasturl']); ?> こんな

yorosiku_orz
質問者

補足

早々の理想(イメージ)のご回答を下さり助かります。 お陰さまで大分理解する事ができました! あと4点ほど分からない事があるのですが… ・ <script> とは、JavaScript の事なんでしょうか? ・ submit(); これは何を意味してるのでしょうか? ・ form の name と id はどこで効果があるのでしょうか? ・ fontchange(0)" の所は、URL?fontchange(0) としなければならないのでしょうか? もし宜しければ、更に教えて下さると助かります。(汗) すみません。 宜しくお願いします。

回答No.1

PHPで文字サイズ変更ですか。 普通にスタイルを書いてはだめですか? <?php print "<p style='font-size:2em'>あいうえお</p>"; ?> これで、文字は大きくなりますよ。

yorosiku_orz
質問者

補足

早々のご回答を下さり助かります。 普通にスタイルでは出来ます。 私の説明不足ですみません。(汗) 例えば、[大] [中] [小] などのリンク文字で、各リンク文字の所でクリックした時に、クリックした文字サイズに変更をすると言った方法の事です。 [大]をクリックしたら文字サイズがでかくなると言ったイメージです。 改めて、もし、PHPで、その方法のやり方があれば、上記の mat-21 さんの様に詳しく教えて頂けると助かります。(汗) 私の説明不足ですみませんでした。(汗)

関連するQ&A

  • 文字サイズ変更ボタンについて

    大) onclick=\"document.body.style.fontSize=\'130%\' 中) onclick=\"document.body.style.fontSize=\'100%\' 小) onclick=\"document.body.style.fontSize=\'70%\' 上記のhtmlで文字サイズ変更ボタンを置いています。 動作は問題ないのですが、中を押した時に当初の大きさに戻したいのに、違うサイズになってしまいます。 解消するにはどうしたらよいのでしょうか?

  • 文字サイズを変更できない

    web制作していて、文字サイズ変更の機能をつけました。 * * * * * * * * * * * * * * * * <div id="fsize"> <div><a id="fsize_l" onclick="document.body.style.fontSize='large'" href="javascript:void(0);"><img src="../../images/b_fsize_l.jpg" alt="文字サイズ 大" width="85" height="25" /></a></div> <div><a id="fsize_m" onclick="document.body.style.fontSize='small'" href="javascript:void(0);"><img src="../../images/b_fsize_m.jpg" alt="文字サイズ 中" width="19" height="25" /></a></div> <div><a id="fsize_s" onclick="document.body.style.fontSize='x-small'" href="javascript:void(0);"><img src="../../images/b_fsize_s.jpg" alt="文字サイズ 小" width="29" height="25" /></a></div> </div> * * * * * * * * * * * * * * * * IEとfirefoxで確認したところ、問題なくサイズ変更されていたんですが、制作を進めていったら、いきなり変更しない箇所がでてきてしまいました。 全体のフォント指定はemでやっています。 何が原因なのでしょうか? 言葉足らずな部分があるかもしれませんが、どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • 文字サイズ変更ボタンでサイズが思うように制御できません

    文字サイズ変更ボタンを配置して、下記のhtmlで大中小に変えられるようにしています。 <div><a id="fsize_l" onclick="document.body.style.fontSize='130%'" href="javascript:void(0);"><img src="../../images/b_fsize_l.jpg" alt="文字サイズ 大" width="85" height="25" /></a></div> <div><a id="fsize_m" onclick="document.body.style.fontSize='100%'" href="javascript:void(0);"><img src="../../images/b_fsize_m.jpg" alt="文字サイズ 中" width="19" height="25" /></a></div> <div><a id="fsize_s" onclick="document.body.style.fontSize='70%'" href="javascript:void(0);"><img src="../../images/b_fsize_s.jpg" alt="文字サイズ 小" width="29" height="25" /></a></div> 元々の文字サイズは%で制御しているのですが、大→中(=標準)に戻した時、元々のサイズとは異なるサイズになってしまいます。 どうしてでしょうか? 標準サイズを100%とし、中サイズも100%と記述しています。

    • ベストアンサー
    • HTML
  • 文字の大きさを変更するjavascriptについて

    文字の大きさを変更するjavascriptについての質問です。 現在以下のようなスクリプトを使用しているのですが、 IE6では動作しますがFirefox2.0では動きません。 原因、アドバイス等あればご指摘お願いします。 *****このスクリプトを外部ファイルとして読み込んでいます***** function larger(){ content_area.style.fontSize="14pt"; } function standard(){ content_area.style.fontSize="12pt"; } function smaller(){ content_area.style.fontSize="9pt"; } *********************************************************** *****head内の外部js読み込み部分***** <script type="text/JavaScript" src="common/js/fontsize.js"></script> ************************************ *****body内のjavascript呼び出し部分***** <ul> <li class="text_large"><a href="javascript:larger()">文字サイズ大</a></li> <li class="text_mid"><a href="javascript:standard()">文字サイズ中</a></li> <li class="text_small"><a href="javascript:smaller()">文字サイズ小</a></li> </ul> **************************************** よろしくお願いします。

  • 文字の大きさ変更

    ページ全体の文字の大きさを変更できるボタンを設置したいと思い 検索で調べて柿のようなスクリプトを作ったのですが、 IE6だと反映されません。どうしてでしょうか? (長くてすみません) <SCRIPT language="JavaScript"> <!-- var Default=3; var tags = new Array('div','td','tr'); var sizing = new Array('70%','80%','90%','100%','110%','120%','130%'); function FontChange(target,tarF){ if (!document.getElementById) return var dore = document,tarS = null,fontSize =Default,value,su,cTags; fontSize += tarF; if (fontSize < 0) fontSize = 0; if (fontSize > 6) fontSize = 6; Default = fontSize; if (!(tarS = dore.getElementById(target))) tarS = dore.getElementsByTagName(target)[0]; tarS.style.fontSize = sizing[fontSize]; for (value = 0 ; su < tags.length ; value++){ cTags= tarS.getElementsByTagName(tags[value]); for (su = 0 ; su < cTags.length ; su++) cTags[su].style.fontSize = sizing[fontSize]; } } //--> <a href="javascript:FontChange('body',1)"><img src="images/big.jpg" alt="" border="0" /></a> <a href="javascript:FontChange('body',-1)"><img src="images/small.jpg" alt="" border="0" /></a> それから出来ればボタン大中小で押せばサイズがそのサイズ で決まっているのだいいのですが、参考になるサイトは ないでしょうか?

  • 文字のサイズ変更について

    ホームページ作成初心者です。 javaにてホームページの文字サイズを制御しています。 Javaは <script type="text/javascript"><!-- fsize = 12; function sizesetpt(val){ document.body.style.fontSize = val + "px"; var tds=document.getElementsByTagName("td"); for(var i=0;i<tds.length;i++){ tds[i].style.fontSize = val + "px"; } } //--> </script> という風に書いています。 HTML内に <form action=""> <img src="image/small.gif" width="28" height="28" onclick=""sizesetpt(10)"> <img src="image/middle.gif" width="28" height="28" onclick=""sizesetpt(12)"> <img src="image/big.gif" width="28" height="28" onclick=""sizesetpt(14)"></form> と書いています。 一応問題無く動いていますが、可能であれば 「今は小サイズの文字で見ていますよ」というのがわかるように 小サイズ表示になっている時には文字小のボタン画像を別の画像に変更したいと思っています。 (例) 白地に黒字の「小」ボタン(画像)を押す ↓ ページが文字小サイズ表記になる ↓ その時はボタンは黒地に白字の「小」ボタン(画像)になっている そのような操作はできるのでしょうか? もし出来るのであればやり方をお教え頂けると助かります。 イメージとしては以下のサイトのような感じです。 もっと複雑なjavaやCSSを使うのでしょうか? http://www.n-kankyo.com/ よろしくお願いします。

  • javascriptで文字サイズ変更する方法

    ページ全体の文字サイズをjavascriptで変更させたいと思っています。 1)http://oku.edu.mie-u.ac.jp/~okumura/javascript/changesize.html 一つ目のこの方法なんですが、無限にサイズを変更できるのではなく、大中小の3サイズ変更にしたいのですが、どう書き換えればよいのでしょうか? 2)http://www14.plala.or.jp/sugachuu/JavaScript/2003/fontsize.html 二つ目のこの方法ですが、自分の作っているページにうまく埋め込めません。 script記述の辺りに問題があると思うのですが。 自作ページには<script type="text/javascript">がすでに入っています。ここに<script language="JavaScript">をどう埋め込めばよいのでしょうか? よろしくお願いします。

  • ホームページ上に「文字サイズ大」ボタンのつけ方

    ホームページ上に「文字サイズ大」のボタンをつけたいと思い、下記のように書きました。 基本の文字サイズは決めています。 「文字サイズボタン」を押すと、少し大きくしたいのですが、bodyは大きくなりますが、table内の文字は変わりません。 他にも「h1」「p」もあるのですが、どうしたらいいでしょうか? ぜひ、教えてください。 よろしくお願いいたします。 ------------------------------------------------------------- <style type="text/css"> <!-- body,h1,table,p,{font-size:13px;} --> </style> <script type="text/javascript"><!-- function large() { document.body.style.fontSize = "100%"; } //--></script> </HEAD> <BODY><INPUT type="button" onclick="large()" value="文字サイズ「大」"> <BR> <BR> あああああああああああああああああああああああああああああああ <TABLE border="1"> <TBODY> <TR> <TD>ああああ</TD> <TD width="111">あああああああ</TD> </TR> </TBODY> </TABLE> </BODY>

  • Javascriptを用いて文字サイズを変更可能にするには

    ブラウザの『文字のサイズ』からではなく、Javascriptを用いてフォントサイズを変更させたいのですが、うまくいきません。 HTML紹介サイトにて、類似のものを見付けたのですが、こちらはボタンを使っています。文字リンク(<a href="javascript:fontsize1()">文字を大きく</a>のように)でフォントサイズを変えることは出来ないのでしょうか。 http://l-c.moo.jp/mozi40.htm ご存知の方がおられましたら、どうかご回答下さい。

  • クリック操作で、サイトの文字の大きさを変えたいのですが。

    クリック操作で、サイトの文字の大きさを変えたいのですが。 似たような質問の回答を見つけ、以下を試してみました。↓ <a href="Javascript:void(document.body.style.fontSize='200%')">大</a> <a href="Javascript:void(document.body.style.fontSize='150%')">中</a> <a href="Javascript:void(document.body.style.fontSize='100%')">小</a> ああああ これはうまくいったのですが、リンクさせると元に戻ってしまい、 ページが変わるたびに、また操作しなければなりません。 このサイトのように http://www.pref.yamanashi.jp/index.html 一度クリックすれば、サイト全体に引き継ぐようにしたいのですが どのようにすればよいのでしょうか? よろしくお願いいたします。

専門家に質問してみよう