- ベストアンサー
肌質を選んで両方表示する方法とは?
- プルダウンメニューで選んだ肌質と選んでいない肌質の両方を表示する方法について、具体例を教えてください。
- PHPの$hada1~$hada3の定義をどう書けばうまく表示できるのかが分かりません。
- HTMLの選択肌質の取得方法と、PHPでの両方の肌質の表示方法について教えてください。
- みんなの回答 (13)
- 専門家の回答
質問者が選んだベストアンサー
Lolipopということだったので、ウチのLolipopアカウントにドメイン割り当てました(汗 http://devtest.shimix.co/1.php 1.php → 2.php → 3.php と遷移します。まったく同じソースを拡張子.txtで保存していますので、http://devtest.shimix.co/1.txt のようにしてソースを確認してください。
その他の回答 (12)
- shimix
- ベストアンサー率54% (865/1590)
ANo.1です ><select name="age"> ><option value="18">18歳</option> ><option value="19">19歳</option> ><option value="20">20歳</option> ><option value="21">21歳</option> ><option value="22">22歳</option> ><option value="23">23歳</option> ><option value="24">24歳</option> ><option value="no" selected="">選択してください</option> ></select> このselect要素では、$_POST['age']の値は18,19,20・・・24(もしくは"no")しかあり得ませんよね。なのに、1,2それ以外で分けているのが謎過ぎます(しかも$age1,$age2,$age3に各々$age+1,$age+5,$age+7を代入するという部分はまったく同一だし・・・ 結局、この一連の処理でセットされるのは $age1 = 選択した年齢+1; $age2 = 選択した年齢+5; $age3 = 選択した年齢+7; だけのように読めますが、それで「年齢は思う通りの表示ができている」のでしょうか?(そもそも$age1,$age2,$age3をどのように使っているのかもわかりません)。 また、$_POST['hada']の内容によって、$hada1,$hada2,$hada3の値を変えていますが、これによってこのあとの何が変わるのかさっぱり想像出来ません。 >肌質がうまく表示できていません。 選択した肌質によって、どのような表示になることを期待されていますか?それがわからないことにはソースを一行も書けません(仕様なしでプログラムは書けない)。
補足
<pre><span class="jyouhoumidashi">☆みか☆さん {$age1}歳/ {$hada1} 口コミ投稿数 278件</span><br> </pre> <span class="kojinkutikomihoshi"> ★★★★★★6 </span> <span class="jyouhoumidashi"> /7点満点中 </span> <br> <p> <br> </p> <br> <span class="jyouhoumidashi"> 2016/12/03 18:38 </span> <br> <span class="sen"> --------------------------------------------------------------------------------------------------------------------------------------- </span> <pre><span class="jyouhoumidashi">ringo807さん {$age2}歳/ {$hada2} 口コミ投稿数 253件</span><br> </pre> <span class="kojinkutikomihoshi"> ★★2 </span> <span class="jyouhoumidashi"> /7点満点中 </span> <br> <p> <br> </p> <br> <span class="jyouhoumidashi"> 2016/11/30 07:56 </span> <br> <span class="sen"> --------------------------------------------------------------------------------------------------------------------------------------- </span> <pre><span class="jyouhoumidashi">イズミさん {$age3}歳/ {$hada3} 口コミ投稿数 248件</span><br> </pre> <span class="kojinkutikomihoshi"> ★★2 </span> <span class="jyouhoumidashi"> /7点満点中 </span> <br> <p> <br> </p> <br> <span class="jyouhoumidashi"> 2016/11/18 23:58 </span> <br> このhtmlの{$hada}と{$age}の部分を回答によって変えたいと考えています。 一人目が回答者によって選択された肌質と同じ肌質で、年齢は回答者の1歳上。 二人目が回答者によって選ばれなかった肌質のうちのひとつと同じで、年齢は回答者の5歳上。 三人目が回答者によって選ばれなかった肌質のうちのひとつ(2人目とは違う)と同じで、年齢は回答者の7歳上。 以上のように考えています。
- shimix
- ベストアンサー率54% (865/1590)
>そのあとのページで選んだ肌質と選んでいない肌質の >両方を表示したいと考えています。 結局は全部表示するわけですよね。どういう違いがあるのでしょうか? 適用するスタイルシートが変わるとか、(JavaScriptで)タブ切替えにして初期表示ページを選択したものにするとか、何か違いがあるのだろうと思いますが質問からは読み取れませんでした($hada1~$hada3に格納することによってあとの処理が変わるのでしょうけど・・・)。 また、$hada(選択した肌質)ではなく$type($_POST['type'])によって$hada1~$hada3への格納を変更しているようですが、フォーム側でname="type"というのがどういうものなのかわかりません。なぜ選択した肌質でなくtypeに依存するのか、提示されたソースだけでは読み取れません。 以上の点について、補足していただけるとありがたいです(現状の質問内容では何をどうしたいのかさっぱりわかりません)。
補足
すいません!コピペする時に前に書いたものをはってしまったみたいです…。 今書いている途中のものを下に書かせていただきます。 ●HTML <span class="honbun"> Q1.あなた自身の年齢を教えてください </span> <select name="age"> <option value="18">18歳</option> <option value="19">19歳</option> <option value="20">20歳</option> <option value="21">21歳</option> <option value="22">22歳</option> <option value="23">23歳</option> <option value="24">24歳</option> <option value="no" selected="">選択してください</option> </select> </p> <p> <span class="honbun"> Q2.あなたの肌質でもっとも当てはまると思うものを<b><u>ひとつ</u></b>選んでください </span> </p> <dl> <dt> 敏感肌</dt> <dd> 化粧品や髪の毛・洋服にあたるだけで肌が痒くなったり、痛みを生じることがある</dd> <dt> 乾燥肌</dt> <dd> 乾燥していて,部分的に粉をふいたようになることがある</dd> <dt> 脂性肌</dt> <dd> 肌がすぐにテカリ,化粧崩れしやすい</dd> </dl> <p> <select name="hada"> <option value="1">敏感肌</option> <option value="2">乾燥肌</option> <option value="3">脂性肌</option> </p> ●PHP $age = 0; $age = $_POST["age"]; if($age == 1){ $age1 = $age + 1; $age2 = $age + 5; $age3 = $age + 7; }else if($age == 2){ $age1 = $age + 1; $age2 = $age + 5; $age3 = $age + 7; } else { $age1 = $age + 1; $age2 = $age + 5; $age3 = $age + 7; } echo <<<EOF $hada = 0; $hada = $_POST["hada"]; if($hada == 1){ $hada1 = "敏感肌"; $hada2 = "脂性肌"; $hada3 = "乾燥肌"; }else if($hada == 2){ $hada1 = "乾燥肌"; $hada2 = "敏感肌"; $hada3 = "脂性肌"; } else { $hada1 = "脂性肌"; $hada2 = "敏感肌"; $hada3 = "乾燥肌"; } 以上です。 年齢は思う通りの表示ができているのですが、肌質がうまく表示できていません。よろしくお願いします。
- 1
- 2
補足
ありがとうございます;; でも、3回目まではちゃんと表示されたのに、残念ながら4回目以降きちんと表示されないです… これは何がいけないんでしょうか…(;´・ω・)