2010-02-22 4 views
0

인용문을 취소, 수정, 수정 및 수정하는 데 사용되는 양식이 있습니다. 해고, 수정 또는 정정으로 무효 심의 할 수 없습니다. 무효화 및 수정해야하는 경우 두 가지 양식을 작성하십시오. 그러나 같은 양식에 대해 해고, 수정 및/또는 정정을 할 수 있습니다. 양식의 변수를 기반으로 만들어진 두 개의 배열이 있습니다. 하나의 배열에는 void 섹션의 변수가 있고, 다른 배열에는 다른 모든 변수가 있습니다.두 배열 값 비교

무효를 다른 모든 규칙과 비교하는 규칙을 만들려고합니다. void 변수가 있는지 확인하고 싶습니다! = ""그리고 다른 변수는! = ""이고 오류 메시지가 나타납니다.

if($_POST[$all_other_fields] !== "" && $_POST[$void_fields] !== "") 
       { 
        $all_ok = false; 
     $citation_error_msg = "Blah, Blah Blah"; 
       } 

내가 한 것은 무의식적으로 두 배열의 모든 varriables를 사용해야한다는 것입니다. = "". 두 배열에서 하나의 변수라도! = ""라고 말하고 싶습니다. 오류 메시지가 표시됩니다.

비교 방법을 잘 모르겠습니다.

+0

$ all_other_fields 및 $ void_fields가 무엇인지 모른 채 도움을받는 것은 불가능합니다. – hobodave

+0

$ all_other_fields는 공백이 아닌 배열 (41 개 변수)을 나타내고 $ void_fields는 void 배열 (2 개 변수)을 나타냅니다. 따라서 void 변수 중 하나와 공백이 아닌 변수 중 하나가! == ""그렇다면 오류 메시지가 필요합니다. 그게 도움이 되었으면 좋겠어. –

답변

1

누군가가 다른 섹션을 채우는 경우 무효 필드가 채워지면 오류가 발생한다고 말하는 것입니까? 사용자가 원하는 것을 묻고 특정 양식을 제시하기 위해 페이징 된 양식으로 양식을 다시 구성 할 수 있습니다. 양식에 관계없는 필드가 있으면 사용자가 혼란스럽게 만듭니다.

어떤 경우에도 현재 양식 디자인을 고수하면 $ _POST를 확인할 빈 필드 이름 배열을 가져야합니다. 다음과 같음 :

$vf_flag=false; 
$void_fields=array('vf1','vf2','vf3'); 
    foreach($void_fields as $vf) { 
     if(!isset($_POST[$vf])) continue; 
     $vf_flag=true; 
     break; //only need one error 
    } 
$nonvf_flag=false; 
//do the same as above except with a non_voidfields array() 

if($nonvf_flag && $vf_flag) $citation_msg='blah blah blah'; 

이 방법은 장황한 방법이지만 간단합니다. array_filter() 및 콜백으로도 처리 할 수 ​​있습니다.

+0

이미 두 개의 배열을 만들었습니다. 나는 단순히 적절한 장소에서 변수를 대체했다. 나는 IF 진술과 혼동한다. -if ($ nonvf_flag && $ vf_flag) 란 무엇입니까? 그들은 무엇입니까? 나는 이해하지 못한다. 뭔가 빠져있는 것 같습니다. 페이징 된 양식에 대한 귀하의 생각을 좋아합니다. 이는 정부이며 우리가 사업 방식을 합리화하기 위해 노력하고 있지만 쉬운 방법이 없습니다. –

+0

@George Garman : 하나 이상의 void $ _POST 필드가 존재하면 $ vf_flag가 TRUE로 설정됩니다. 하나 이상의 다른 $ _POST 필드가 설정되면 $ nonvf_flag가 TRUE로 설정됩니다. 두 플래그가 모두 TRUE면 문제가있는 것입니다. 'if ($ nonvf_flag && $ vf_flag)'는'if ($ nonvf_flag == true && $ vf_flag == true)'와 같습니다. 원래의 방법 :'$ _POST [$ array]! == '''는'$ _POST [$ array]'에 저장된 * 스칼라 값이 빈 문자열과 동일하지 않다는 것을 말합니다. – dnagirl

+0

설명해 주셔서 감사합니다. 나는 변수 이름을 사용했지만 심지어 다음과 같은 오류가 발생합니다 : PHP 치명적인 오류 : D 레벨에서 재개/계속 수행 할 수 없음 \ eCitation \ Civil_VDAC_Validation.php 줄 77 줄 77이 첫 번째 나누기입니다. 이것이 중요하다면 양식 필드가 비어있는 상태로 발생하고 있습니다. –