2012-09-25 2 views
-1

웹 사이트에 정보가 필요한 여러 필드가있는 많은 양식이 있습니다. $ fields라는 배열을 사용하고 제출할 때 양식을 내 이메일로 보냈습니다. 하지만 빈 변수를 보내지 못하게하려면 어떻게해야합니까? 나는 모든 빈 필드가 마음에 들지 않습니다.빈 배열 변수 제외 PHP

'If'문을 사용할 수 있지만 모든 단일 변수에 대해 원하지 않는다는 것을 알고 있습니다.

다음은 샘플입니다. 전체 코드 링크는 아래에 있습니다.

$fields = array(); 
    $fields["Name"]   = "\nName"; 
    $fields["email"]   = "\nEmail"; 
    $fields["Phone"]   = "\nPhone"; 
    $fields["WorkPhone"]  = "\nWork Phone"; 
    $fields["Address"]  = "\nStreet Address"; 
    $fields["City"]   = "City"; 
    $fields["State"]   = "State"; 
    $fields["Zip"]   = "Zip Code"; 
    $fields["Classification"] = "\nClassification"; 
    $fields["Ad-Headline"] = "\nHeadline"; 

다음은 양식 중 하나에 대한 전체 스크립트입니다. http://pastebin.com/W0xjNGmi

답변

2

변화 라인 38 ~ 41

$body = "This Ad has been submitted:\n\n"; 
foreach ($fields as $a => $b) { 
    if(isset($_REQUEST[$a]) && !empty($_REQUEST[$a]))$body .= sprintf("%20s: %s\n", $b, $_REQUEST[$a]); 
} 

새로운 라인 # 40 검사 요청 변수가

+0

흠 ... 이것은 나에게 의미가 있었지만 지금은 모든 변수를 제외했습니다. 나는 "이 양식이 제출되었습니다"라는 제목으로 남겨 두었습니다. – user1596138

+0

새 코드를 올리십시오. –

+0

'$ body = "이 광고가 제출되었습니다 : \ n \ n"; if (isset ($ _REQUEST [$ a]) &&! empty ($ _REQUEST [$ a])) $ body = sprintf ("% 20s : % s \ n", $ b, $ _REQUEST [$ a]); ' – user1596138

4

콜백 인수없이 호출하면 배열에서 빈 요소가 제거됩니다.

+0

Josiah이 $ _REQUEST 변수에 나타나는 하위 집합을 사용하고 있기 때문에이 경우 array_filter를 어떻게 사용하는지 모르겠습니다. –

0

은 또한 사용할 수 있습니다 비어 있지 않은, 존재하고 $ 본문에 추가합니다 경우 :

$null_free_array = array(); 

foreach($your_array as $array_element) 
{ 
    if(!is_null($array_element)) $null_free_array[] = $array_element 
} 

또는

$null_free_array = array(); 

foreach($your_array as $array_element) 
{ 
    if(!empty($array_element)) $null_free_array[] = $array_element 
} 

is_null은 빈 문자열 즉 ""을 (를) 차단하지만 비어있는 내용을 처리하지 않으므로 정확하게 필요한 항목과 확인하려는 항목에 따라 다릅니다.