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

Javascript 25个HTML字段-不同用户级别的不同字段?,javascript,php,forms,http-post,Javascript,Php,Forms,Http Post,所以我有25个HTML字段(文本、下拉列表、选择等等) 我需要根据级别向用户显示这些内容,有些可能会显示,有些可能不会,到目前为止,我提出的唯一选项是在加载字段之前使用if语句检查用户级别,例如: if(userLevel == 1 || userLevel == 2){ echo("<input type='text' name='phoneNumber'/>"); if(userLevel==1 | | userLevel==2){ 回声(“”); 但是,在我这样做之后,代码

所以我有25个HTML字段(文本、下拉列表、选择等等) 我需要根据级别向用户显示这些内容,有些可能会显示,有些可能不会,到目前为止,我提出的唯一选项是在加载字段之前使用if语句检查用户级别,例如:

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

但是,在我这样做之后,代码会变得非常冗长和混乱,有没有办法给每个字段指定某种ID,并根据用户级别加载具有特定ID的字段


JS字段验证也是如此,无论如何,要给每个字段id(如电子邮件、url),使其自动得到验证,而不是在每个字段上编写和调用一次更改?

有很多方法

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

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);
函数dumpForm($userLevel){
$fields=数组(
'name'=>数组(
'类型'=>'文本',
“级别”=>2,
“值”=>“
),
'电话'=>阵列(
'类型'=>'文本',
“级别”=>1,
“值”=>“
),
'电子邮件'=>数组(
'类型'=>'文本',
“级别”=>1,
'值'=>'email@example.org'
)
);
foreach($name=>$data形式的字段){
提取(数据);

如果($level“是否有任何方法根据用户级别为每个字段指定某种ID和页面加载,并加载具有特定ID的字段?”--我相信你还必须检查用户级别的条件,并调用必要的代码块。是的,我讨厌为此构建html表单,这太单调了。我还喜欢返回字段w php
value=“”
,以防用户遗漏了一些内容,他们不必重新键入所有内容。