dポイントプレゼントキャンペーン実施中!

PHPで、顧客検索、顧客検索結果、顧客情報修正確認と三つのプログラムを作りました。

それぞれ顧客検索ー>顧客検索結果、顧客検索結果ー>顧客情報修正確認と遷移することができます。

反対に前の画面に戻ることもできます。

顧客情報修正確認から前の画面(顧客検索検索)に戻るとき、どうしても前の画面(顧客検索検索)で入力した情報が反映されず、顧客検索で調べた情報(旧情報)に上書きされてしまうのですがどのようにプログラミングするとよいのでしょうか?

下記のプログラムは顧客検索結果の該当する部分だけ切り取ったものです。

<div class="control">
<label for="C_name">顧客名(全角文字のみ入力可)</label>
<input id="C_name" type="text" name="C_name"
         value="<?php print($get_C_nam[0]); ?>" ">
</div>

A 回答 (3件)

顧客検索画面


 顧客番号を入力して検索ボタンなどで顧客検索結果画面へ遷移する。
顧客検索結果画面
 顧客検索画面から渡された顧客番号を元にDBから情報を取得し、
 画面に表示する。
 情報は編集可能であり、編集した場合は修正ボタン、
 顧客検索画面へ戻りたい場合は戻るボタンを押す。
顧客情報修正確認画面
 顧客検索結果画面から渡された各値を表示する。
 確定ボタンの押下でDBに反映する。
 DB反映後に表示される画面は不明。
 顧客検索結果画面へ戻りたい場合は戻るボタンを押す。

問題としているのは顧客情報修正確認画面の戻るボタンで、
顧客検索結果画面へ戻った時に、編集した時の値で画面を
表示することができない。

これで認識いいですかね?

顧客検索結果画面ですが、値の取得元が2パターンあることが分かります。
 ・顧客番号から検索して値を表示する。
 ・編集した時の値を表示する。

例えば、顧客番号をC_no、顧客名をC_nameだったとしましょう。
顧客検索画面からは顧客名は受け取りません。
つまり、C_nameがないのに顧客検索結果画面が表示されたら、
それは顧客検索画面から渡ってきたことになります。
逆にC_nameがあるなら顧客情報修正確認画面から渡ってきたことになります。
あまり物事を考えない、最も単調な判断材料は、上記のようなことなります。

【顧客検索結果画面】
<?php
if (isset($_GET['C_name'])) {
$no = $_GET['C_no']
$name = $_GET['C_name']
} else {
$no = $_GET['C_no']
// C_noでDBを検索
$name = // DB検索結果のC_name
}
?>
<input type="text" name="C_name" value="<?php print($name); ?>">

当然ですが、顧客情報修正確認画面の戻るボタンを押下時には、
編集中の値が顧客検索結果画面に渡されなければなりません。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

そちらの認識はあっています。

issetで、どこから来た値なのかを判断して、それによって表示する値を変えていくという処理をすればいいんですね。

説明がわかりやすく、参考になりました。

回答して頂きありがとうございました。

お礼日時:2021/02/03 16:13

すみませんが、顧客検索画面、顧客検索結果画面、顧客情報修正確認画面で、どのような項目に対してどのような操作をしてどのように遷移した時、どうなってほしいが、どうなってしまうのか、をもう少し具体的にご提示ください。

    • good
    • 1
この回答へのお礼

回答ありがとうございます。
わかりました。

顧客検索画面では値を得たい顧客の番号を検索ボタンを押して、顧客検索画面に遷移します。
このとき、顧客の番号は顧客検索結果画面に渡されます。

顧客検索結果画面では、顧客検索画面から渡された顧客の番号をもとに、DBから関連した値を画面に表示します。
顧客検索結果画面には修正ボタン、戻るボタンがあります。
修正ボタンはDBから得た値をこの画面で修正した場合に押し、次の画面である顧客情報修正確認画面に修正した値を渡します。
戻るボタンは顧客検索画面に戻る場合に押し、遷移します。

顧客情報修正確認画面では、顧客検索結果から渡された値を表示します。
もし、表示されている値に誤りが無かったら確定ボタンを押してDBに接続し、値を更新します。


問題は、もう1つのボタンである、戻るボタンです。
戻るボタンを押したとき、顧客情報修正確認画面に表示されている値を遷移元である顧客検索結果画面に修正後の値を表示したいのですが、顧客検索画面で検索した値が表示され、修正後の値が上書きされてしまいます。

顧客検索結果画面では値の表示はprintでやっています。

どのようにしたら上記の問題(修正後の値の上書き)を解決できるのでしょうか?

お礼日時:2021/02/03 13:14

> 顧客検索で調べた情報(旧情報)


とはどういうことでしょうか?
検索時の入力値を画面をまたいで持ち回れば、望むような値の復元は可能かと思いますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

顧客検索で調べた情報とはデータベースから持ってきた情報のことをいいます。

検索時の入力値を画面をまたいで持ち回るとおっしゃってますが、それをするにはどのようなプログラムを書けばいいのでしょうか?

よろしくお願いします。

お礼日時:2021/02/03 09:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!