Хорошо, это обычный сценарий.
У вас есть HTML-форма, которая включает редактирование информации. Первоначальная информация поступает из базы данных. Когда вы публикуете форму, она может не сохранить информацию сразу, потому что, возможно, что-то нужно исправить, когда проверка данных будет выполнена, возможно, одно из обязательных полей оставлено пустым. В результате вы хотите снова отобразить поле формы, но если были данные публикации, отобразите данные публикации, если нет, отобразите исходные данные из базы данных.
Итак, я создал функцию для проверки сообщений, а затем по умолчанию для некоторых произвольных данных (в данном случае из базы данных).
Но в целом этот подход выглядит не элегантным, данные 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>
Как мне улучшить работу с формами, которые получают свои данные либо из базы данных изначально, либо из почты после того, как делается какая-то отправка?