前提・実現したいこと
PHP7.3でSESSIONを使用した入力フォームの作成をしています。
入力内容の確認画面から、”修正する”ボタンを押下し、入力フォーム画面に戻ってきたとき、
プルダウンリストの選択内容を保持した状態で戻ってきたい。
発生している問題
$dateに”1/17(月)”、$_SESSION['receiptOn']にも同様に”1/17(月)”が入っている時でも、
下記コードでの実行結果はplaceholderに指定している”選択”が表示されてしまいます。
該当のソースコード
PHP
1<?php 2$calendar = formatDate($calendar); 3?> 4<div class="reserveContainer"> 5 <div class="reserveSubContainer"> 6 <label class="formTitle">お受け取り日</label> 7 </div> 8 <div class="reserveSubContainer"> 9 <select name="receiptOn" id="sources" class="custom-select sources" placeholder="選択"> 10 <?php 11 foreach($calendar as $key => $calArr): 12 $date = $calArr['date']; 13 ?> 14 <option value="<?php echo $date?>" <?php if($_SESSION['receiptOn'] == $date){ echo 'selected';};?>)><?php echo $date;?></option> 15 <?php endforeach;?> 16 </select> 17 </div> 18</div>
試したこと
var_dump($_SESSION['receiptOn']);
→結果は”1/17(月)”
補足情報(FW/ツールのバージョンなど)
HTML5
PHP7.3
補足ソースコード
PHP
1<?php 2$calendar = array( 3 '0001' => array( 4 'date' => '2022-01-17', 5 'stock' => array( 6 '1' => 0, 7 '2' => 10, 8 '3' => 0, 9 '4' => 6, 10 ), 11 ), 12 '0002' => array( 13 'date' => '2022-01-18', 14 'stock' => array( 15 '1' => 0, 16 '2' => 5, 17 '3' => 0, 18 '4' => 6, 19 ), 20 ), 21 '0003' => array( 22 'date' => '2022-01-19', 23 'stock' => array( 24 '1' => 0, 25 '2' => 10, 26 '3' => 10, 27 '4' => 5, 28 ), 29 ), 30); 31function formatDate($calendar){ 32 $week = [ 33 '日', //0 34 '月', //1 35 '火', //2 36 '水', //3 37 '木', //4 38 '金', //5 39 '土', //6 40 ]; 41 // m月d日(x)に成形 42 foreach($calendar as $dateorg => $arr){ 43 $date = date('w', strtotime($arr['date'])); 44 45 $calendar[$dateorg]['date'] = date('n/j('.$week[$date].')', strtotime($arr['date'])); 46 47 }; 48 return $calendar; 49}; 50?>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/15 02:53
2021/09/15 02:55
2021/09/15 02:59
2021/09/15 03:03
2021/09/15 03:12
2021/09/15 03:24
2021/09/15 03:45