25个HTML字段 - 不同用户级别的不同字段?

时间:2014-07-26 15:30:59

标签: javascript php html-form-post

所以我有25个HTML字段(文本,下拉菜单,选择等...) 我需要这些根据他们的级别向用户显示,有些可能会显示一些可能没有,到目前为止只有我想出的选项是使用if语句在加载字段之前检查用户级别,例如:

if(userLevel == 1 || userLevel == 2){
echo("<input type='text' name='phoneNumber'/>");

但是在我这样做之后,代码结果很长而且很乱,有没有办法给每个字段提供某种ID和页面加载,根据用户级别加载那些具有特定ID的字段?< / p>

相同的JS字段验证,无论如何都要给每个字段ID(比如电子邮件,网址),以便自动验证,而不是在每个字段上编写和调用onChange?

1 个答案:

答案 0 :(得分:0)

有很多方法。

对于快速解决方案,您可以使用数组和循环,例如:

function dumpForm($userLevel) {
    $fields = array(                                                                                                                                                   
        'name'      => array(
            'type'  => 'text',
            'level' => 2,
            'value' => ''
        ),
        'phone'     => array(
            'type'  => 'text',
            'level' => 1,
            'value' => ''
        ),
        'email'     => array(
            'type'  => 'text',
            'level' => 1,
            'value' => 'email@example.org'
        )
    );

    foreach ($fields as $name => $data) {
        extract($data);
        if ($level <= $userLevel)
            echo "<input type='$type' name='$name' value='$value'/>\n";
    }
}

echo "\nForm (level 1):\n";
dumpForm(1);

echo "\nForm (level 2):\n";
dumpForm(2);

您还可以向数组添加其他字段以进行javascript验证,或者根据type字段添加一些逻辑(例如,当类型为number时,生成带有数字的text条目验证)。