javascript での文字サイズの変更は
function で document.body.style.fontSize これを利用して変更できますが・・・
javascript を利用せずPHPで文字サイズを変更させるにはどうやったら良いのでしょうか?
また、PHPでクッキー情報を利用する場合、クッキー情報から文字サイズを取得方法、書き換え方法などどの様にしたら良いのでしょうか?
質問は以上2点です。
できれば、私はPHPの経験が浅いので、分かりやすく詳しく教えて頂けると非常に助かります。
中途半端な知識で対応できず苦しんでおります。
何方か、どうか、教えて下さい。 宜しくお願いします。
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>
で宜しいですか?
ブラウザ実行確信していないので、不動作でしたらごめんなさい。また誤植もあるかもしれません。。。。
度々恐縮です。
なるほどです!記入ミスでなはなかったです。(汗)
今回、こんなに的を得たご回答を度々下さって!
すごく嬉しく思ってます。(感謝)
実は、質問は初めてでして、ちょっと不安でした。(汗)
今回、お陰さまで私のように中途半端な知識者でも理解する事ができました。
また、質問するかもしれませんが、その際は、また宜しくお願いします。
でわ今回、非常に丁寧に詳しく十分すぎるご回答を気持ち良く頂いたので、ベストアンサーに選ばさせて頂きます。
貴重なお時間をとらせてしまいましたが、本当に本当に有難うございました。感謝感激な思いです。
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...恐縮です。
この回答への補足
こんばんは。いえいえ、私の知識不足と理解力の悪さです。(汗)
何度も詳しく返答して頂いて恐縮です。非常に分かり易くて助かってます。
それで、質問の返答の件ですが…なるほどです。
あと、一つだけ、どうしても理解できないところがあるのですが
今 <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;
?>
これで実際、作成したリンク文字をクリックして確認して見たのですが、データが渡されていませんでした(汗)
何度も質問して本当にすみません。(汗)
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']);
?>
こんな
この回答への補足
早々の理想(イメージ)のご回答を下さり助かります。
お陰さまで大分理解する事ができました!
あと4点ほど分からない事があるのですが…
・ <script> とは、JavaScript の事なんでしょうか?
・ submit(); これは何を意味してるのでしょうか?
・ form の name と id はどこで効果があるのでしょうか?
・ fontchange(0)" の所は、URL?fontchange(0) としなければならないのでしょうか?
もし宜しければ、更に教えて下さると助かります。(汗) すみません。
宜しくお願いします。
No.1
- 回答日時:
PHPで文字サイズ変更ですか。
普通にスタイルを書いてはだめですか?
<?php
print "<p style='font-size:2em'>あいうえお</p>";
?>
これで、文字は大きくなりますよ。
この回答への補足
早々のご回答を下さり助かります。
普通にスタイルでは出来ます。
私の説明不足ですみません。(汗)
例えば、[大] [中] [小] などのリンク文字で、各リンク文字の所でクリックした時に、クリックした文字サイズに変更をすると言った方法の事です。
[大]をクリックしたら文字サイズがでかくなると言ったイメージです。
改めて、もし、PHPで、その方法のやり方があれば、上記の mat-21
さんの様に詳しく教えて頂けると助かります。(汗)
私の説明不足ですみませんでした。(汗)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
架空の映画のネタバレレビュー
映画のCMを見ていると、やたら感動している人が興奮で感想を話していますよね。 思わずストーリーが気になってしまう架空の感動レビューを教えて下さい!
-
フォントの色を変えるには?
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスに初期値を入れる
-
DBの値をチェックボックスに反...
-
<input type="hidden" >で配列...
-
パラメーターを隠す
-
自動のGETパラメータの仕組みに...
-
入力フォーム→確認画面→送信画...
-
PHPで受け取ったパラメータを別...
-
HTMLのリンクをクリックするこ...
-
アップロードの際にファイルパス
-
チェックボックスの内容が送信...
-
HTMLで前の画面に戻る時、入力...
-
smartyでチェックボックスをチ...
-
ラジオボタンのチェックを判定...
-
フォームへの前回入力値をクリ...
-
PHP 掲示板について
-
PHP DBの登録情報をラジオボタ...
-
配列をhiddenで
-
フォーム INPUTの文字化け対策...
-
PHPで画像の渡しが上手く行きま...
-
【PHP】 文字サイズの変更につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
フォームへの前回入力値をクリ...
-
検索時の選択内容を保持する方法
-
PHPで画像の渡しが上手く行きま...
-
フォームボタンを押すたびに数...
-
syntax error, unexpected '}' ...
-
フォームでのリセットを使う方法
-
パラメーターを隠す
-
$_SESSIONについて教えて下さい。
-
ラジオボタンをsessionで使いたい
-
画面が更新されてもチェックボ...
-
phpの掲示板で新しい順に表...
-
PHPで、ボタンを押すと同じペー...
-
phpでの複数選択チェックボック...
-
PHPでじゃんけん勝負
-
チェックボックスを使った複数...
-
DBの値をチェックボックスに反...
-
PHPのmysqlに格納したデータの...
おすすめ情報