ASP.NET WebForms устарел, но в одном аспекте он намного лучше, чем PHP: ViewState. Когда вы отправляете форму, контроль остается. В PHP вы должны делать все самостоятельно, рендеринг HTML.
Быстро, я придумаю код, который выглядит так:
print('<input type="text" name="txtDate" value="' . (isset($_POST['btnSave']) ? $_POST['txtDate'] : Common::FormatDate($row['Date'])) . '" class="datepicker ' . ($dateValid ? '' : 'invalid') . '" />');
Поэтому я решил создать хотя бы базовые функции для элементов управления рендерингом:
class Controls
{
public static function TextBox($name, $id, $value, $class)
{
return '<input type="text" name="' . $name . '" id="' . $id . '" value="' . htmlentities($value) . '" class="' . $class . '" />';
}
}
Это делает вещи более удобными, но это не то же самое, что иметь ViewState.
Не говоря уже о том, что вам нужно продублировать код для редактирования и создания с разными настройками:
Создайте: значение = все, что находится в
$_POST
Редактировать: значение = если форма отправлена, возьмите все, что есть в$_POST
в противном случае возьмите значение из базы данных / модели. (троичный оператор здесь)
Это становится еще сложнее, когда вы показываете / скрываете всплывающие окна!
В общем, это очень сложный и неудобный способ, и у меня есть абсолютно нет Идея, где начать улучшать это. Каковы ваши предложения?
Задача ещё не решена.
Других решений пока нет …