PHP ステートレス故消える前回入力されていた画面の内容を、再送する方法を知りたい。
極めて初心者らしい質問になりますがよろしくお願いします。
Webシステムはステートレスとよく言われますが、PHP側の検証が成立せずDBへの登録が進行できなかった場合、送信されてきた状態の画面を維持したい、ということがあると思います。
逆に、DBへの登録まで成立した場合は(他へ遷移せず当該画面で継続して処理していくケース)、
入力されていた内容のほとんどをクリアして画面を再表示したい という仕様を望んでいます。
送信結果を再格納するケースと、送信結果を再格納しないケースに大別できますが、一般的にはどういう解決策で、制御すべきなのでしょうか?
下記は送信された結果を変数に蓄え、それを再格納するようなHTML&PHPです。
・この仕様では、画面上の項目数分 変数を用意しなければならない。
・正常にDBへの登録へ進行した場合、これら変数をクリアしなければならない。
<input type="text" name="tcd" id="tcd" style="width: 5em;" value="<?php if(isset($tcd)){ echo $tcd; } ?>" />
と思いました。こういう達成の仕方が一般的なのでしょうか?
セッション変数を使うにしても、維持とクリアの制御が必要ですよね??
フレームワークを使わない場合、どういった対策をとるのが一般的なのか知りたいです。
よろしくお願い致します。
<<追記>>
$dataに蓄えたい内容は、この中のinput要素
<div class="appControl">
<table>
<tr>
<td class="extd">得意先</td>
<td><input name="tcd" id="tcd" type="text"></td>
<td><input name="tname" type="text" readonly=""></td>
<td><input name="tperson" type="text" readonly=""></td>
<td class="extd">納品先</td>
<td><input name="scd" id="scd" type="text"></td>
<td><input name="sname" type="text" readonly=""></td>
<td><input name="sperson" type="text" readonly=""></td>
</tr>
</table>
</div>
<div class="appLines">
<table>
<tr>
<td><input name="cd[]" type="text" value=""></td>
<td><input name="name[]" type="text" readonly="" value=""></td>
<td><input name="capa[]" type="text" readonly="" value=""></td>
<td><input name="scond[]" type="text" readonly="" value=""></td>
<td><input name="lot[]" type="text" value=""></td>
<td><input name="amount[] type="text" value=""></td>
<td><input name="unitp[]" type="text" readonly="" value=""></td>
<td><input name="totalp[]" type="text" readonly="" value=""></td>
<td><span class="errmark"></span></td>
<td><button class="rowins" type="button">+</button></td>
<td><button class="rowdel" type="button">-</button></td>
</tr>
<tr>
<td><input name="cd[]" type="text" value=""></td>
<td><input name="name[]" type="text" readonly="" value=""></td>
<td><input name="capa[]" type="text" readonly="" value=""></td>
<td><input name="scond[]" type="text" readonly="" value=""></td>
<td><input name="lot[]" type="text" value=""></td>
<td><input name="amount[] type="text" value=""></td>
<td><input name="unitp[]" type="text" readonly="" value=""></td>
<td><input name="totalp[]" type="text" readonly="" value=""></td>
<td><span class="errmark"></span></td>
<td><button class="rowins" type="button">+</button></td>
<td><button class="rowdel" type="button">-</button></td>
</tr>
</table>
</div>