• 締切済み

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

以前もご質問させていただいたのですが、できなかったためもう一度ご質問させていただきました。 現在フォームを作成しております。 入力フォームで各項目を入力してから確認画面、送信となるフォームです。 入力フォームにて各項目を入力し、確認画面が表示され、確認画面にて入力等の間違えや、入力をし忘れた等などがあった場合「戻る」で、入力画面に戻るようにしています。 (必須項目が記入されていなかった場合は自動で入力画面に戻るように設定。) 入力画面にてチェックボックス(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"; } ?> とても説明がしずらいためわかりにくいとこがあると思いますが、宜しくお願いします。 また、何か足りない記述等が御座いましたら、お申しでください。 他のテキストボックスなどは正常に動作しております。 (入力画面→確認画面→入力画面の動作をおこなってもテキストボックス内に表示されています。) 宜しくお願いいたします。

みんなの回答

回答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