好的,这是一个常见的场景。
您有一个涉及编辑信息的 html 表单。原始信息来自数据库。当您发布表单时,它可能不会立即保存信息,因为在完成数据检查时可能需要修复某些内容,可能其中一个必填字段留空。结果,你想重新显示表单域,但是如果有post数据,则显示post数据,如果没有,则显示数据库中的原始数据。
所以我创建了一个函数来检查帖子,然后默认为一些任意数据(在这种情况下来自数据库)。
但总的来说,这种方法感觉不优雅,POST 数据被从全局函数内部无形地拉取,但如果我将 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>
我如何改进处理最初从数据库中获取数据的表单,或者在完成某种提交后从发布中获取数据的表单?