2012-12-13 111 views
-1

我有一些代碼顯示輸入信息從我的電子郵件中的複選框,一旦提交。這項工作絕對沒問題,但是當用戶沒有從複選框中進行選擇時,我希望它在我的電子郵件中顯示「未選中選項」。我怎樣才能做到這一點?下面是相關的代碼 - 我需要爲這兩個複選框實現此目的。我假設我需要某種ELSE語句。電子郵件中的複選框輸入信息

代碼:未提交

if(!empty($_POST['features'])) { 
foreach($_POST['features'] as $value) { 
    $check_msg1 .= "Features checked: ".$value."\n";   
}} 

if(!empty($_POST['fright'])) { 
foreach($_POST['fright'] as $value) { 
    $check_msg2 .= "Fright checked: ".$value."\n";    
}} 
+0

你是否在你的代碼中處理了'!empty'函數? –

回答

1

嘗試:

if(isset($_POST['features'])) { 
foreach($_POST['features'] as $value) { 
    $check_msg1 .= "Features checked: ".$value."\n";   
}} 
else { 
    $check_msg1 .= "No options checked \n"; 
} 

if(isset($_POST['fright'])) { 
foreach($_POST['fright'] as $value) { 
    $check_msg2 .= "Fright checked: ".$value."\n";    
}} 
else { 
    $check_msg2 .= "No options checked \n"; 
} 

如果沒有選項被選中,則POST將不會爲一個複選框返回任何值。因此,您需要檢查POST數組中的值是否已設置。即使選中了複選框,檢查「空白」也會返回true,但它有一個空值。

+0

它說check_msg1的未定義變量。我需要添加這個嗎? $ check_msg1 = $ _POST ['features']; $ check_msg2 = $ _POST ['fright']; – user1278496

+1

在for循環中使用它們之前,必須初始化這兩個變量,否則它們只存在於循環本身的上下文中,並且以後不能使用。 如果您還沒有在其他地方初始化它們,那麼您必須在上面插入以下內容: '$ check_msg1 =「」; ' '$ check_msg2 =「」; ' – Khior

+0

謝謝你的星星! – user1278496

1

複選框值一旦未籤,因此,如果$_POST['cb_name']是空的,總比什麼都沒有檢查。根據這一點,你需要這樣的代碼(同樣爲「驚嚇」):

if(!empty($_POST['features'])) { 
    foreach($_POST['features'] as $value) { 
     $check_msg1 .= "Features checked: ".$value."\n";   
    } 
} else { 
    $check_msg1 .= "No options checked\n" 
} 
1

如果用戶還沒有檢查什麼也不會有$ _ POST [「功能」]或$ _POST ['驚嚇']

你需要做一個isset,或者更確切的說是一個! isset

if (! isset($_POST['features'])) 
{ 
    $check_msg1 .= "No features selected.\n"; 
} 
else 
{ 
    foreach ($_POST['features'] as $value) 
    { 
     $check_msg1 .= "Features checked: " . $value . "\n"; 
    } 
} 

if (! isset($_POST['fright'])) 
{ 
    $check_msg2 .= "No fright selected.\n"; 
} 
else 
{ 
    foreach ($_POST['fright'] as $value) 
    { 
     $check_msg2 .= "Fright checked: " . $value . "\n"; 
    } 
} 
相關問題