2012-01-09 66 views
0

我想寫一個簡單的函數來爲表單構造字段名稱。如果在多選列表中選擇了至少一個值,但工作正常,但如果沒有選擇任何內容,則會收到未定義的索引錯誤。這裏是我有:PHP獲取多選擇列表值

function mcFieldName($mcFieldName){ 
$mcField = $_POST[$mcFieldName]; 
if(!is_array($mcField)){ 
    if(!empty($mcField)){ 
     return $mcField; 
    }else{ 
     return 'n/a'; 
    } 
} 
if(is_array($mcField)){ 
    $mcFieldArray = implode(',', $mcField); 
    return $mcFieldArray; 
} 

}

$MultiSelect = mcFieldName('mcMultiSelect'); 
// test 
echo $MultiSelect . '<br/>'; 

謝謝!

回答

1

你只需要保護自己從閱讀中不$_POST存在的關鍵:

$mcField = isset($_POST[$mcFieldName]) ? $_POST[$mcFieldName] : null; 
+0

我嘗試了isset和!空,但他們都沒有工作。我不明白null部分。 – user1002039 2012-01-09 02:22:51

+0

@ user1002039:這樣做的作用是將'$ mcField'設置爲字段的值(如果發佈的話);如果沒有,則設置爲'null'。你現有的代碼會通過返回''n/a''來對'null'值做出反應。我不確定你的意思是「你嘗試過,但都沒有成功」。 – Jon 2012-01-09 02:25:00

+0

謝謝!現在我明白了。 – user1002039 2012-01-09 02:29:35

1

之前您嘗試訪問數組項確保它存在使用isset()

if (isset($_POST[$mcFieldName])) { 
    $mcField = $_POST[$mcFieldName]; 
    ... 
}