2014-07-26 1 views
3

그래서 25 개의 HTML 필드 (텍스트, 드롭 다운, 셀렉트 등 ...)가 있습니다. 레벨에 따라 사용자에게 보여줄 필요가 있습니다. 일부는 표시되지 않을 수도 있습니다.25 HTML 필드 - 사용자 수준에 따라 다른 필드가 있습니까?

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

나는 코드가 매우 길고 지저분 끝 그렇게 후에 그러나, 각 필드에게 ID의 일종을 줄 수있는 방법이 있고 : 문로드 필드 전에 사용자 수준, 예를 확인할 경우 사용에 페이지로드시 사용자 수준에 따라 특정 ID가있는 입력란을로드합니까?

JS 필드 유효성 검사와 마찬가지로 모든 필드 ID (전자 메일, URL 등)를 제공하여 각 필드에서 onChange를 작성하고 호출하는 대신 자동으로 유효성을 검사합니까?

+0

"각 필드에 특정 종류의 ID를 부여하고 페이지로드시 사용자 수준에 따라 특정 ID가있는 필드를로드 할 수있는 방법은 무엇입니까?" - 또한 사용자 수준에 대한 조건을 확인하고 필요한 코드 블록을 호출해야한다고 생각합니다. –

+0

네, 이런 이유로 건물 HTML 양식을 작성하는 것을 싫어하므로 지루합니다. 나는 또한 사용자가 모든 것을 다시 입력 할 필요가없는 경우에 사용자가 실수를 할 경우를 대비하여 w php'value = "

답변

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 protected]' 
     ) 
    ); 

    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); 

당신은 또한 자바 스크립트 유효성 검사를 위해 배열에 추가 필드를 추가하거나 type 필드를 기준으로 일부 로직을 추가 할 수 있습니다 : 당신이주기 배열하고, 예를 사용할 수있는 빠른 해결을 위해

(예 : 유형이 number 인 경우 번호 확인을 사용하여 text 항목을 생성하십시오.)

관련 문제