Php 如何维护同一HTML表单的可查看和可编辑版本

Php 如何维护同一HTML表单的可查看和可编辑版本,php,html,Php,Html,维护同一HTML表单的可查看和可编辑版本的最佳实践是什么 我有一个应用程序,它有很多自定义数据输入屏幕(有几十个,有时数百个字段),我讨厌维护每个表单布局的可查看和可编辑版本 我目前正在重构两个PHP类,一个用于: class ViewableFormTemplate { public static function dsp_textbox($field_name, $row) { echo $row[$field_name]; } } …还有一个类似的例子:

维护同一HTML表单的可查看和可编辑版本的最佳实践是什么

我有一个应用程序,它有很多自定义数据输入屏幕(有几十个,有时数百个字段),我讨厌维护每个表单布局的可查看和可编辑版本

我目前正在重构两个PHP类,一个用于:

class ViewableFormTemplate {
    public static function dsp_textbox($field_name, $row) {
        echo $row[$field_name];
    }
}
…还有一个类似的例子:

class EditableFormTemplate {
    public static function dsp_textbox($field_name, $row) {
        echo '<input type="text" name="$field_name" value="'. $row[$field_name] .'>';
    }
}
类EditableFormTemplate{
公共静态函数dsp\u文本框($field\u name,$row){

echo'为什么首先需要区分? 不管怎样,把它全部放在一个类中的一个函数中,然后根据(可选)传递的布尔标志确定输出的类型如何

class FormTemplate {
    public static function dsp_textbox($field_name, $row, $editable = false) {
        if ($editable)
            echo sprintf('<input type="text" name="%s" value="%s">',
                         $field_name,
                         $row[$field_name]
            );

        else
            echo $row[$field_name];
    }
}
类表单模板{
公共静态函数dsp\u文本框($field\u name,$row,$editable=false){
如果($可编辑)
echo sprintf(“”,
$field_name,
$row[$field\u name]
);
其他的
echo$row[$field_name];
}
}

我相信你明白这个概念。不过要注意,如果值包含一个双引号或一组<尖括号>(仅举几个例子),html将被破坏。在回显之前,你必须先读取该值。

这基本上与OP的方法相同…只是语法有点不同。有没有更好的方法来处理这个问题ue?