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

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

新規登録して質問してみよう
ただいま回答率
85.48%
foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4040閲覧

phpの入力画面でのチェックした内容を数字で確認画面に渡して配列の値で表示させる方法

singlestroke

総合スコア68

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/03/30 09:45

入力画面のHTMLで下記のように記述しています。
※valueの値が実際はもっと長いですが質問用に短くしています。

HTML

1<div class="form-group"> 2 <label for="context" class="col-sm-2 control-label">内容</label> 3 <div class="checkbox col-sm-6"> 4 <label> 5 <input type="checkbox" name="context[]" id="context" value="1"> キン肉マン 6 </label> 7 </div> 8 <div class="checkbox col-sm-offset-2 col-sm-6"> 9 <label> 10 <input type="checkbox" name="context[]" id="context" value="2"> テリーマン 11 </label> 12 </div> 13 <div class="checkbox col-sm-offset-2 col-sm-6"> 14 <label> 15 <input type="checkbox" name="context[]" id="context" value="3"> ロビンマスク 16 </label> 17 </div> 18 <div class="checkbox col-sm-offset-2 col-sm-6"> 19 <label> 20 <input type="checkbox" name="context[]" id="context" value="4"> ウォーズマン 21 </label> 22 </div> 23 <div class="checkbox col-sm-offset-2 col-sm-6"> 24 <label> 25 <input type="checkbox" name="context[]" id="context" value="5"> ラーメンマン 26 </label> 27 </div> 28</div>

valueの値を確認画面で受け取り、

php

1$context = (isset($_POST["context"])) ? $_POST["context"] : null;

下記のような配列に中身を格納しておき、

php

1$ar_context = array ( 2 "1" => "キン肉マン", 3 "2" => "テリーマン", 4 "3" => "ロビンマスク", 5 "4" => "ウォーズマン", 6 "5" => "ラーメンマン" 7);

確認画面で選択したものをforeachなどを使用して表示できないかと思いいろいろ試行錯誤しているのですができません。

php

1<?php 2if ( empty($context) ) { 3 print "<p class=\"text-danger\">内容を選択してください。</p>"; 4} else { 5 print "<ul>\n"; 6 foreach ( ??? ) { 7 ??? 8 } 9 print "</ul>\n"; 10} ?>

入力画面でvalueに同内容をセットしてしまえばできることは分かっているのですが上記の方法で解決したいです。

教えていただけますと幸いです。よろしくお願いいたします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

php

1foreach ( $context as $key => $value ) { 2 print "<li>$ar_context[$value]</li>"; 3}

投稿2016/03/30 10:23

singlestroke

総合スコア68

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

html

1<label> 2 <input type="checkbox" name="context[]" id="context" value="1"> キン肉マン 3</label>

まず、これだと「1」は送られてくるけど「キン肉マン」は送られてこない件。
次に「id="context"」がチェックボックスすべてについてるけど、idは同一htmlファイル内で同じのを2個以上使ってはダメ。

あと、「$ar_context」が入力画面で選択されたものがキー・値の形で入っているという前提で、

php

1foreach ( ??? ) { 2 ??? 3}

PHP foreach - Manual<-これの2番目の形式を使ってみれば「何番目」と「超人の名前」が取れるんじゃないすか?

投稿2016/03/30 09:59

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

singlestroke

2016/03/30 10:20

「2番目の形式」というのがどれか分かりませんでしたが、下記の方法で解決しました。 foreach ( $context as $key => $value ) { print "<li>$ar_context[$value]</li>"; } ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問