アシアル株式会社主催 開発者向け、一歩先をいくためのテクニカルセミナー

<< ラジオボタンでのデータ保持 質問一覧 ラジオボタンのnameの値を受け渡したい >>
  • キーワードが設定されていません

  • 0P
選択リストのforeach

アンケートや問い合わせ用のフォームです。
選択リストをforeach文で書きましたが、ユーザーが選択したデータを戻るを押したときに、そのデータを保持したままにしたいのですがうまくいきません。
selectedを使用したもので回答いただけたらと思います。
初心者ですがよろしくお願いします。


  1. <?php
  2. include("../x_style.php");
  3. ?>
  4.  
  5. <HTML>
  6. <HEAD>
  7. <TITLE>サンプル1</TITLE>
  8. </HEAD>
  9.  
  10. <?= $style["BODY"] ?>
  11. <?= $style["TABLE_S"] ?>
  12.  
  13. <center>お問い合わせ用フォーム</center>
  14. <?= $style["HR"] ?>
  15. <FORM method="POST" action="sendmail.php">
  16.  
  17. <BODY>
  18.  
  19. <?php
  20.  
  21. $shumi = array("釣り","アウトドア","バイク","ドライブ","散歩","特になし");
  22.  
  23. echo "<select name=\"趣味\">";
  24.  
  25. foreach ($shumi as $key => $var) {
  26.  
  27.   echo "<option>".$var."</option>";
  28.  
  29. }
  30.  
  31. echo "</select>";
  32.  
  33.  
  34.  
  35. ?>
  36.  
  37.  
  38.  
  39. <INPUT type="submit" value="送信する"></FORM><BR>
  40.  
  41. [1]<a href=../index.php accesskey=1>戻る</a>
  42. <?= $style["HR"] ?>
  43. <?= $style["FOOT"] ?>
  44. <?= $style["TABLE_E"] ?>
  45. </BODY>
  46. </HTML>

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。

Q選択リストのforeach sming  [03月12日 05時37分] 
┣Re:選択リストのforeach shimix  [03月12日 09時07分] 
┗Re:選択リストのforeach sming  [03月12日 10時03分] 
  ┗満開Re:Re:選択リストのforeach shimix  [03月12日 10時15分] 
    ┗Re:Re:Re:選択リストのforeach sming  [03月12日 10時25分] 
      ┗Re:Re:Re:Re:選択リストのforeach shimix  [03月12日 15時28分] 

コメント一覧

並び替え( ツリー順 / 投稿順[降順] / 投稿順[昇順]

Re:Re:Re:Re:選択リストのforeach

>ちょっと違うことをすると応用が利かない性格なんです。

それって性格なんですかねぇ。少なくともプログラムを書くことに関しては改善しておかないと困るでしょう。性格は言い訳に出来ませんから。

Re:Re:Re:選択リストのforeach

ありがとうございました。

ちょっと違うことをすると応用が利かない性格なんです。

本当にありがとうございました。

Re:Re:選択リストのforeach

いや、前のレスじゃ応用出来ませんか?「戻る」ボタンでPOSTされてくるのであれば(そのあたりの情報は前もって提示してください)$selの代わりに$_POST['趣味']になるだけですよね?

  1. foreach ($shumi as $var) {
  2.   if ($var == $_POST['趣味']) {
  3.   print "<option selected>" . $var . "</option>";
  4.   }
  5.   else {
  6.   print "<option>" . $var . "</option>";
  7.   }
  8. }

というか前のスレッドとの違いもwhileとforeachだけなのに・・

Re:選択リストのforeach

かなり難しい内容です。
ここで前回やっと覚えたのは簡単なif文を使った選択リストです。
その選択リストでデータを保持する内容は

  1. <?php
  2. include("../x_style.php");
  3. ?>
  4.  
  5. <HTML>
  6. <HEAD>
  7. <TITLE>サンプル</TITLE>
  8. </HEAD>
  9.  
  10. <?= $style["BODY"] ?>
  11. <?= $style["TABLE_S"] ?>
  12.  
  13. <center>問い合わせ用フォーム</center>
  14.  
  15. <?=$style["HR"] ?>
  16.  
  17. <FORM method="POST" action="sendmail.php">
  18.  
  19. <BODY>
  20.  
  21. 生年月日(西暦)
  22. <select name="年">
  23. <?php
  24.  
  25. $n = 1999;
  26.  
  27. while($n <=2001){
  28.  
  29.  
  30.   if ($_POST[""] == $n) {
  31.  
  32.     echo "<option value=".$n." selected>".$n."</option>\n";
  33.  
  34.   }
  35.  
  36.   else {
  37.  
  38.     echo "<option value=".$n.">".$n."</option>\n";
  39.  
  40.   }
  41.  
  42.     $n++;
  43.  
  44. }
  45.  
  46. ?>
  47. </select>年
  48.  
  49.  
  50.  
  51. <BR><BR>
  52.  
  53. <INPUT type="submit" value="送信する"><BR><BR></FORM>>>CODE
  54.  
  55.  
  56.  
  57. [1]<a href=../index.php accesskey=1>戻る</a>
  58. <?= $style["HR"] ?>
  59. <?= $style["FOOT"] ?>
  60. <?= $style["TABLE_E"] ?>
  61. </BODY>
  62. </HTML>

//だったんですが、どうも応用に弱いみたいで5日ほど悩んでしまいアドバイスあればと思い、書き込みました。

  1. <?php
  2.  
  3. $shumi = array("釣り","アウトドア","バイク","ドライブ","散歩","特になし");
  4.  
  5. echo "<select name=\"趣味\">";
  6.  
  7. foreach ($shumi as $key => $var) {
  8.  
  9.   echo "<option>".$var."</option>";
  10.  
  11. }
  12.  
  13. echo "</select>";
  14.  
  15.  
  16.  
  17. ?>
  18.  
  19.  
  20.  
  21. <INPUT type="submit" value="送信する"></FORM><BR>

今回は同様のレベルで、foreach文にしたらselectedを使いソースはどうなるのかを教わりたく思っておりますので何卒よろしくお願いします。

Re:選択リストのforeach

「何を選択していたか」をCookieなどで引き継がないといけません。center要素やaccesskey属性から推測すると携帯端末向けでしょうか?そうなるとCookieが使えない環境かもしれませんので、QueryStringで渡すとすると

受け取り側での「戻り」
  1. print '<a href="example.php?' . urlencode('趣味') . '=' . urlencode($_POST['趣味']). '">戻る</a>';

フォーム側で選択済みの有無チェック&セット
  1. if (isset($_GET['趣味'])) { $sel = $_GET['趣味']; }
  2. $shumi = array("釣り","アウトドア","バイク","ドライブ","散歩","特になし");
  3. foreach ($shumi as $var) {
  4.   if ($sel == $var) {
  5.   print "<option selected>" . $var . "</option>";
  6.   }
  7.   else {
  8.   print "<option>" . $var . "</option>";
  9.   }
  10. }

#携帯端末向けでなければCookieの方が楽でしょうね
ラジオボタンでのデータ保持 質問一覧 ラジオボタンのnameの値を受け渡したい