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も見ています
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
フォントの色を変えるには?
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
PHPでクリックするたびに変数を...
-
チェックボックスを用い、MySQL...
-
<input type="hidden" >で配列...
-
PHPでフォームデータをサンクス...
-
ラジオボタンをsessionで使いたい
-
検索後にチェックボックスのON/...
-
$_POSTを連想配列で取得したい!!
-
パラメーターを隠す
-
PHPで画像の渡しが上手く行きま...
-
入力した部分を表示させたまま...
-
【HTML(PHP?)】複数のフォーム...
-
フォームへの前回入力値をクリ...
-
POSTやGETの変数をフォーム無し...
-
連想配列の操作がうまくいかない
-
フォームのテキストボックスに...
-
phpの掲示板で新しい順に表...
-
至急!!教えてほしいです!!
-
【PHP】もし、「リセット」ボタ...
-
チェックボックスの値に応じてP...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
フォームへの前回入力値をクリ...
-
検索時の選択内容を保持する方法
-
PHPで画像の渡しが上手く行きま...
-
フォームボタンを押すたびに数...
-
syntax error, unexpected '}' ...
-
フォームでのリセットを使う方法
-
パラメーターを隠す
-
$_SESSIONについて教えて下さい。
-
ラジオボタンをsessionで使いたい
-
画面が更新されてもチェックボ...
-
phpの掲示板で新しい順に表...
-
PHPで、ボタンを押すと同じペー...
-
phpでの複数選択チェックボック...
-
PHPでじゃんけん勝負
-
チェックボックスを使った複数...
-
DBの値をチェックボックスに反...
-
PHPのmysqlに格納したデータの...
おすすめ情報