わかりました、これは一般的なシナリオです。
情報の編集を伴う HTML フォームがあります。元の情報はデータベースから取得されます。フォームを投稿しても、すぐに情報が保存されない場合があります。これは、データ チェックが完了したときに修正が必要な場合や、必須フィールドの 1 つが空白のままになっている可能性があるためです。結果、フォームフィールドを再表示したいが、投稿データがあれば投稿データを表示し、なければデータベースから元のデータを表示する。
そこで、投稿をチェックする関数を作成し、デフォルトで任意のデータ (この場合はデータベースから) に設定します。
しかし、全体として、このアプローチは洗練されていないように感じられます。POST データはグローバルから関数内で目に見えない形で取り込まれていますが、ポスト データを渡すと、すべての関数呼び出しに対してそれを渡す必要があり、それを実行するのと同じくらい冗長です。毎回手作業なので、具体的にはこのアプローチの代替案を探しています。一般的に、HTMLフォームを編集するたびに扱うこのフォームシナリオに対処するためのより良い方法についてアドバイスが欲しいです.
// Pull from post or get, or else use data, e.g. from the database, to populate a form.
function in_or_data($index, $data, $trim=false){
return $_POST[$index]? ($trim ? trim($_POST[$index]) : $_POST[$index]) : $data[$index];
}
<?php
$item_name = in_or_data('item_name', $data_from_database_somewhere); // Pull post data, with defaults coming from the
?>
// ..... Later, some example html that just escapes & echoes out the data. .....
<td id='item-name'><input name="item_name" type="text" id="item_name" value="<?php echo escape($item_name); ?>" size="47" maxlength="100" tabindex="9"></td>
最初にデータベースからデータを取得するフォーム、または何らかの送信が行われた後にポストからデータを取得するフォームの処理を改善するにはどうすればよいですか?