• 締切済み

チェックボックス エラー表示とチェック表示

以前もご質問させていただいたのですが、できなかったためもう一度ご質問させていただきました。 現在フォームを作成しております。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてチェックボックス(MF,FWにチェックをしたとする。)を選択し、確認画面が表示されたあと入力画面に戻るとチェックボックスが選択されていたはずなのにチェックがはずれているという現象が起きています。 入力画面→確認画面→入力画面ページが表示されてもセレクトメニューの値はそのままでなおかつチェックボックスの値もそのまま表示されているようにしたいです。 この現象を直すにはどのように記述したらよろしいでしょうか? また、チェックを必須項目にさせてチェックがされなかった場合のエラー出力方法の記述も教えていただけないでしょうか? 下記は入力フォームの記述になります。 <?php $position_arrays = array('選択1','選択2','選択3','選択4','選択5'); for ($i = 0; $i < 5; $i++) { $checked = "" ; $checked = ($_SESSION["position"][$i] == $position_arrays,$i) ? "checked":""; print '<input type="checkbox" name="position['.$i.']" value="'.$position_arrays[$i]. '" '.$checked.'>' . $position_arrays[$i]. "\n"; } ?> とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

  • h-h13
  • お礼率24% (37/149)
  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

回答No.2

>$checked = ($_SESSION["position"][$i] == $position_arrays,$i) ? "checked":""; 「$position_arrays,$i」⇒「$position_arrays[$i]」にしないとまずいと思います。

h-h13
質問者

補足

有難う御座います。 上記のように直したのですが、できませんでした。 確認画面ではこのように受け取っています。 $position = isset($_POST['position']) ? implode(" , " , $_POST['position']) : NULL; ・ ・ ・ $_SESSION['position'] = $position;

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

前回もちょっときになっていたんですが、「戻る」というのは ブラウザの戻るボタンをおしたり、history.backなどで戻っています? そうなると、セッション関係なくブラウザの挙動の問題になりますが・・・ そうではなく戻るというリンクで、前ページに戻る・・・つまり 「進む」のであれば、前回提示したものでいけるはずです。 デバッグするならとにかくprint_r($_SESSION)できちんと データがわたっているか見るといいでしょう

h-h13
質問者

補足

有難う御座います。 遅くなり、申し訳ありません。 何度か試させていただいたのですが、できなかったため、再度投稿させていただきました。

関連するQ&A

  • チェックボックス エラー表示とチェック表示

    現在フォームを作成しております。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてチェックボックス(MF,FWにチェックをしたとする。)を選択し、確認画面が表示されたあと入力画面に戻るとチェックボックスが選択されていたはずなのにチェックがはずれているという現象が起きています。 入力画面→確認画面→入力画面ページが表示されてもセレクトメニューの値はそのままでなおかつチェックボックスの値もそのまま表示されているようにしたいです。 この現象を直すにはどのように記述したらよろしいでしょうか? また、チェックを必須項目にさせてチェックがされなかった場合のエラー出力方法の記述も教えていただけないでしょうか? 下記は入力フォームの記述になります。 <?php $position_arrays = array('選択1','選択2','選択3','選択4','選択5'); for ($i = 0; $i < 5; $i++) { $checked = "" ; $checked = ($_SESSION["position"][$i] == sprintf($position_arrays,$i)) ? "checked":""; print '<input type="checkbox" name="position['.$i.']" value="'. sprintf($position_arrays[$i]) . '" '.$checked.'>' . sprintf($position_arrays[$i]) . "\n"; } ?> とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

    • 締切済み
    • PHP
  • メールフォーム チェックボックス

    以前にも何度かご質問させていただいたのですが、できなかったためもう一度ご質問させていただきました。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてチェックボックス(選択1,選択2にチェックをしたとする。)を選択し、確認画面が表示されたあと入力画面に戻るとチェックボックスが選択されていたはずなのにチェックがはずれているという現象が起きています。 入力画面→確認画面→入力画面ページが表示されてもセレクトメニューの値はそのままでなおかつチェックボックスの値もそのまま表示されているようにしたいです。 この現象を直すにはどのように記述したらよろしいでしょうか? また、チェックを必須項目にさせてチェックがされなかった場合のエラー出力方法の記述も教えていただけないでしょうか? 下記は入力フォームの記述になります。 入力画面 <?php $position_arrays = array('選択1','選択2','選択3','選択4','選択5'); for ($i = 0; $i < 5; $i++) { $checked = "" ; $checked = ($_SESSION["position"][$i] == $position_arrays,[$i]) ? "checked":""; print '<input type="checkbox" name="position['.$i.']" value="'.$position_arrays[$i]. '" '.$checked.'>' . $position_arrays[$i]. "\n"; } ?> 確認画面 $position = isset($_POST['position']) ? implode(" , " , $_POST['position']) : NULL; ・ ・ ・ $_SESSION['position'] = $position; とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • メールフォーム チェックボックス

    以前もご質問させていただいたのですが、できなかったためもう一度ご質問させていただきました。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてチェックボックス(選択1,選択2にチェックをしたとする。)を選択し、確認画面が表示されたあと入力画面に戻るとチェックボックスが選択されていたはずなのにチェックがはずれているという現象が起きています。 入力画面→確認画面→入力画面ページが表示されてもセレクトメニューの値はそのままでなおかつチェックボックスの値もそのまま表示されているようにしたいです。 この現象を直すにはどのように記述したらよろしいでしょうか? また、チェックを必須項目にさせてチェックがされなかった場合のエラー出力方法の記述も教えていただけないでしょうか? 下記は入力フォームの記述になります。 入力画面 <?php $position_arrays = array('選択1','選択2','選択3','選択4','選択5'); for ($i = 0; $i < 5; $i++) { $checked = "" ; $checked = ($_SESSION["position"][$i] == $position_arrays,[$i]) ? "checked":""; print '<input type="checkbox" name="position['.$i.']" value="'.$position_arrays[$i]. '" '.$checked.'>' . $position_arrays[$i]. "\n"; } ?> 確認画面 $position = isset($_POST['position']) ? implode(" , " , $_POST['position']) : NULL; ・ ・ ・ $_SESSION['position'] = $position; とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

    • 締切済み
    • PHP
  • チェックボックス、セレクトメニューについて

    現在フォームを作成しております。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてセレクトメニュー(1990年01月01日に選択したとする。)、チェックボックス(MF,FWにチェックをしたとする。)を選択し、 確認画面が表示されたあと入力画面に戻るとセレクトメニューは選択した値(1990年01月01日)のはずが初期値の値(1980年01月01日)に戻っている。 チェックボックスは選択されていたはずなのにチェックがはずれているという現象が起きています。 入力画面→確認画面→入力画面ページが表示されてもセレクトメニューの値はそのままでなおかつチェックボックスの値もそのまま表示されているようにしたいです。 この現象を直すにはどのように記述したらよろしいでしょうか? 下記は入力フォームと確認画面の記述になります。 /***** 入力画面 *****/ <tr> <td class="title_back1"><label for="mail">生年月日</label></td> <td class="title_back2"> <p class="error"><?php print $_SESSION['err_birthday_ereg']; ?></p> <?php //年の入力 print '<select name="year">' . "\n"; $start = date('Y') -29; $end = date('Y') -16; for ($i = $start; $i <= $end; $i++) { print '<option value="' . sprintf("%04d",$i) . '">' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select>年' . "\n"; //月の入力 print '<select name="month">' . "\n"; for ($i = 01; $i <= 12; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>月' . "\n"; //日の入力 print '<select name="day">' . "\n"; for ($i = 01; $i <= 31; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>日' . "\n"; ?> </td> </tr> <tr> <td class="title_back4"><label for="position">希望ポジション</label></td> <td class="title_back5"> <input type='checkbox' name='position[]' value='GK'>GK <input type='checkbox' name='position[]' value='DF'>DF <input type='checkbox' name='position[]' value='MF'>MF <input type='checkbox' name='position[]' value='FW'>FW <input type='checkbox' name='position[]' value='MG'>MG </td> </tr> /***** 確認画面 ******/ $year = isset($_POST['year']) ? sprintf("%04d",$_POST['year']) : NULL; $month = isset($_POST['month']) ? sprintf("%02d",$_POST['month']) : NULL; $day = isset($_POST['day']) ? sprintf("%02d",$_POST['day']) : NULL; $position = isset($_POST['position']) ? implode(" , " , $_POST["position"]) : NULL; //生年月日をチェック if (checkdate($month, $day, $year) === false) { $_SESSION['err_birthday_ereg'] = '生年月日が正しくありません。'; $error = TRUE; } else { unset($_SESSION['err_birthday_ereg']); } <tr> <td class="title_back1">生年月日</td> <td class="title_back2"><?php print h($year) ;?>年&nbsp;<?php print h($month) ;?>月&nbsp;<?php print h($day) ;?>日</td> </tr> <tr> <td class="title_back4"><label for="career">希望ポジション</label></td> <td class="title_back5"><?php print h($position) ;?></td> </tr> と以上になります。 とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • マクロ フォームでのチェックボックスについて

    教えてください。 1)フォームでテキストボックス2つ、ボタンで新しい入力フォーム表示 2)入力フォームでチェックボックス6個、コンボボックス6個を作ります。 3)チェックボックスにチェック(1個のみ)したら、1)のフォームのテキストボックスにチェックされた、項目とコンボボックスで選択された内容が転記したい。 例)果物にチェック、コンボでブドウと選択  テキストボックス→果物 ブドウ というようにフォームに転記させたい。 以前、シートでのマクロを教えていただきましたが、フォームだと頭が混乱してしまいました。 簡単で良いので、マクロの記述を教えてください。

  • smartyでチェックボックスをチェック済み状態にするには

    先ほどカテゴリ選択ミスでperlに投稿してしまいましたすみません。 こんばんは、PHPでメールフォームを作成していて壁に当たり質問させていただきます。 {{html_checkboxes name="checked" selected=$smarty.session.checked options=$checked_value}} 入力フォームのtplにて上記のようにしてチェックボックスを配置しています。 このチェックボックスに最初からチェックを入れておくことはできませんか? メールフォーム自体は出来ているのですが、このチェックボックスをチェック済みにすることが出来ずに困っています。 検索したり書物を調べたのですが掲載されていなく、自己解決ができません。 表示されるチェックボックスは全てチェック済みが初期状態にしておきたいのです。 ご指摘よろしくお願いします。

    • 締切済み
    • PHP
  • チェックボックスのチェックした項目の名前を取得したいです。

    チェックボックスのチェックした項目の名前を取得したいです。 HTML+Javascript+CGIでアンケートフォームを作っています。 送信ボタンを押したときに確認画面を表示させたいのですが、チェックボックスの項目をどう扱って良いのかわかりません。 性別を選択するラジオボタンの値の取得(男をチェックしたか、女をチェックしたか)は sex = document.mailform.sex[0].checked ? document.mailform.sex[0].value : document.mailform.sex[1].value このように出来るとのことですが、チェックボックスはどうしたら良いのでしょうか? 好きな食べ物を聞くチェックボックスで、選択項目に ・リンゴ・バナナ・ミカン・イチゴ を用意し、チェックされた項目を 好きな食べ物:リンゴ イチゴ の用に出力したいと思っています。 よろしくお願いします。

  • チェックボックスの必須項目指定

    入力フォームにあるチェックボックスをPHPを使って必須にしたいです。 何もチェックしないまま送信すると、 「一つ以上チェックしてください」とチェックボックスの下に表示される仕組みを作りたいのですが、どのようなものがありますでしょうか? 調べてみましたが、エラーページにとぶ仕組みだったり確認画面への送り方などしかみつからず・・・ よろしくお願いします。

    • ベストアンサー
    • PHP
  • JavaScriptにて、2つのチェックボックスのチェックができません

    お世話になっております。 お分かりになる方いらっしゃいましたら、ご教授願えますでしょうか? 現在採用に関する応募フォームを作成しています。 JavaScriptにてフォーム内のチェックボックスに チェックが入っているか、必須チェックをさせたいと思っています。 テキストボックスやコンボボックスなど、いくつか必須チェックがある中で、 チェックボックスの項目についての必須チェックがうまくいきません。 チェック完了後、cgiにてメールを送信するようにしているのですが、 チェックがされず、メールを送信してしまいます。 ローカルで行ってみたのですが、チェックをスルーして、 cgiに遷移してしまいます。 フォームイメージは以下の感じです。 <応募フォーム> --------------------------- 希望勤務地:□本社 □大阪 --------------------------- 2つのチェックボックスどちらにもチェックが入っていない場合は、 エラーメッセージを出し、処理を中止します。 どちらのチェックボックスにもチェックが入っていても、 エラーは出さずにcgiへ遷移します。 以下は現在のコードの内容です。 <HTMLコード> <form method="POST" action="send.cgi" name="応募フォーム" onSubmit="return check()"> <input type="checkbox" name="希望勤務地" value="本社" checked>本社 <input type="checkbox" name="希望勤務地" value="大阪">大阪 <input type="submit" value=" 送信 "> <input type="reset" value=" 取消 "> <Scriptコード> function check(){ if(!document.応募フォーム.希望勤務地.value.checked){ flag = 1; window.alert('必須項目[希望勤務地]にチェックがされていません'); } } 色々試してみたのですが、うまくいきませんでした。 チェックボックスのnameを同じ名前にしているのが原因でしょうか? お手数ですが、宜しくお願いいたします。

  • PHPの初心者です。現在チェックボックスのデータ引き継ぎで困っています

    PHPの初心者です。現在チェックボックスのデータ引き継ぎで困っています。 簡単に言うと、資料請求一覧ページみたいなものがHTMLであり各箇所にチェックボックスがあります。そして複数をチェックして資料請求ボタンをクリックすると登録フォームに遷移し、尚且つチェックボックスがオンのVALUEは名前が、表示されている状態で、PHPを使い登録メールフォームを作るといった感じです。現在は入力フォームの状態で表示されるまでは辿り着いたのですが、確認画面に遷移すると、チェック項目が全て表示されなくなりました。 現状の入力フォームにあるPHPは <?php /* フォーム変数が存在する場合 */ if($_POST["color"] != ""){ $color = implode ("," , $_POST["color"]); print ($color); /* フォーム変数が存在しない場合 */ }else{ print ("選択されていません。"); } ?> <?php } ?> と言った感じです。確認画面でどういう風にPHPで記述したら良いのか判らないのが今の問題です。間違いはたくさんあると思いますが、恐れ入りますがPHPに詳しい方がいらっしゃいましたら是非ご教授頂きたいと思っております。どうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP