2つほど聞きたいのですが、
1個目の写真が思うように表示されていないのですか?
比較できる画像やここがおかしいと例を挙げて欲しいです。
2個目の写真の配列はどの変数を出力したものですか?
onchangeで選択した月の業務リストを表示させたい
解決したいこと
MAMPを用いたローカル環境で日報システムを作成しています。
ログイン直後は、写真①のように今月の業務情報を取得できております。しかし、プルダウンを開き、年月を選択すると、写真②のようにデータの配列だけが表示されてしまいます。
※恐らくログイン時に取得するユーザー情報の配列かと思いますが、私の力不足でどのコードが影響しているのか検討がついておりません。
年月を選択した後は、該当年月の業務情報が写真①のように表示される状態にしたいです。
※写真①は、プルダウンを開いただけで、まだ年月を選択していません。
解決方法を教えていただきたいです。
②年月を選択すると、ログイン時に取得するユーザー情報が表示されてしまいます。
該当するソースコード
//2.ユーザーの業務日報データを取得
if (isset($_GET['m'])) {
$yyyymm = $_GET['m'];
$day_count = date('t', strtotime($yyyymm));
} else {
$yyyymm = date('Y-m');
$day_count = date('t');
}
//プルダウンリスト
<form class="border rounded form-time-table" action="index.php">
<select class="form-select rounded-pill mb-3" name="m" onchange = "submit(this.form)">
<option value="<?= date('Y-m') ?>"><?= date('Y/m') ?></option>
<?php for ($i = 1; $i < 12; $i++) : ?>
<?php $target_yyyymm = strtotime("-{$i}month"); ?>
<option value="<?= date('Y-m', $target_yyyymm) ?>"
<?php if ($yyyymm == date('Y-m', $target_yyyymm)) echo 'selected'
?>><?= date('Y/m', $target_yyyymm) ?></option>
<?php endfor; ?>
</select>
### 自分で試したこと
・年月を選択すると、GETパラメータに選択した年月が表示されます。
http://example01.com/list.php
⬇️
http://example01.com/index.php?m=2022-06
2Answer
Comments
@blue-chicken
Questioner失礼いたしました。
1個目の写真は、ログイン直後の画面になります。
プルダウンを開いて、違う年月を選択すると、2個目の写真になります。
2個目の写真の配列は、ログイン時に取得する配列が表示されています。
そうですね。どこの変数の配列が出力されているか記載しないと問題が分かりませんね。
投稿を修正いたします。
@murase131 様
問題解決いたしました。
@murase131 様のご指摘を受けて、「どこの変数の配列が出力されているか」を
考えていました。明らかにユーザー情報を取得しており、データベースと照合して、
正しい業務データを取得しようとしていました。
←正しく動作しており、間違いは別にあることに気付きました。
そこで、GETパラメータを再度確認いたしました。年月を選択すると、GETパラメー
タに選択した年月が表示されるのですが、明らかに違うphpに遷移していました。
http://example01.com/list.php
⬇️
http://example01.com/index.php?m=2022-06
従って、親フォームのactionをaction="index.php"に設定していたので、取得した
業務データを正しく出力できていませんでした。
正しくはaction="list.php"でした。
以上、ご指摘ありがとうございました。バグに直面した時の、考え方を見直す必要が
あると感じた所存でございます。