質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.69%

セッションを利用して、チェックボックスの複数項目を呼び出したいです。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,448

Kako7788

score 6

お世話になります。

セッションを利用して、「ご選択カラー」のチェックボックスの複数項目を呼び出したいです。
いろいろ試してみたのですが、
下記では、確認画面で「array」と表示されてしまいます。

◆入力ファイル(index.php)

<?php session_start(); 
         function filter($data) { 
                $data = strip_tags($data); 
                $data = trim(htmlentities($data, ENT_QUOTES, "UTF-8")); 
                if (get_magic_quotes_gpc())$data = stripslashes($data);
                return $data;
         }

         if(isset($_POST['submit'])){  

            $name = ((isset($_POST['name']))?$_POST['name']:"");
            $_SESSION['entry']['name']= $name;


            $email = ((isset($_POST['email']))?$_POST['email']:"");
            $_SESSION['entry']['email']= $email;

            $content = ((isset($_POST['content']))?$_POST['content']:"");
            $_SESSION['entry']['content']= $content;

            echo  "<script> window.location.href='confirm.php'; </script>";

        }    
?>



          <form method="post" action="" id="form_area" >
            <table cellpadding="0" cellspacing="0" style="width: 100%">

                    <tr>
                      <td>&nbsp;&nbsp;メールアドレス 
                        <font color="red">(必須)</font></td>
                      <td><input type="text" name="email" size="50" style="ime-mode:disabled" required /></td>
                    </tr>
                    <tr>
                      <td>&nbsp;&nbsp;選択カラー 
                        <font color="red">(必須)</font></td>
                      <td>
                      <table border="0">
                          <tr>
                            <td ><label>
                                <input type="checkbox" name="content[]" value="赤" /></label></td>
                          </tr>
                          <tr>
                            <td ><label>
                                <input type="checkbox" name="content[]" value="青" /></label></td>
                          </tr>
                          <tr>
                            <td ><label>
                                <input type="checkbox" name="content[]" value="黄" /></label></td>
                          </tr>
                          </table>

                      </td>
                    </tr>
                  </table></td>
              </tr>
            </table>
            <br>
            <p style="text-align: center">
              <input type="submit" value="" name="submit" class="submit hover" style="opacity: 1;border: none;">

            </p>
          </form>

◆確認画面ファイル(confirm.php)

<?php session_start();
if(!isset($_SESSION['entry']) && $_SESSION['entry']['email']=="")
      {
        echo  "<script> window.location.href='index.php'; </script>";
      }
if(isset($_POST['confirm'])) {
    $to = $_SESSION['entry']['email'];        
    $from_addr = 'info@hoge.jp';
(省略)



    if($_SESSION['entry']['email']) { 
        $message .= 'メールアドレス: '.$_SESSION['entry']['email']."\n";
    }          

    if($_POST['entry']['content']) { 
        $message .= 'ご選択カラー: '.$_POST['entry']['content']."\n";
    }

                (省略)        
                }
            }
?>



              <form method="post" action="" >
            <table cellpadding="0" cellspacing="0" style="width: 100%">
              <tr>
                <td style="padding:0px;margin:0px;"><table cellpadding="0" cellspacing="0" class="contactTable">

                    <tr>
                      <td>&nbsp;&nbsp;メールアドレス <font color="red">(必須)</font></td>
                      <td><?php echo $_SESSION['entry']['email'];?></td>
                    </tr>
                    <tr>
                      <td>&nbsp;&nbsp;ご選択カラー <font color="red">(必須)</font></td>
                      <td>
<?php echo $_SESSION['entry']['content'];?>
              </td>
                    </tr>

                  </table></td>
              </tr>
            </table>
            <br>
            <p style="text-align: center">
              <button type="submit" name="confirm" class="submit_confirm hover" style="opacity: 1;border: none;"> &nbsp;&nbsp; </button>
                         </p>
          </form>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

<input name="content[]" /> としているわけですから、$_POST['content'] は配列で入ってきます。
とりあえず表示したいなら、join すればいいでしょう。

$content = isset($_POST['content']) ? join(',', $_POST['content']) : "";

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/27 02:48

    ありがとうございます!おかげさまで解決しました。
    全体的に理解しておらず、いろいろなサイトのソースを踏襲してみたり試行錯誤しましたが、joinの1文字で解決するとは。。。日頃phpに接する機会が無くとても追い詰められました。
    大変助かりました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.69%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る