0

フォームのフィールド名を作成する単純な関数を作成しようとしています。複数選択リストで少なくとも 1 つの値が選択されている場合は正常に機能しますが、何も選択されていない場合は、未定義のインデックス エラーが発生します。これが私が持っているものです:

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/>';

ありがとうございました!

4

2 に答える 2

1

に存在しないキーを読み取らないようにする必要があるだけです$_POST

$mcField = isset($_POST[$mcFieldName]) ? $_POST[$mcFieldName] : null; 
于 2012-01-09T02:21:32.450 に答える
1

配列項目にアクセスする前に、次を使用して存在することを確認してisset()ください。

if (isset($_POST[$mcFieldName])) {
    $mcField = $_POST[$mcFieldName];
    ...
}
于 2012-01-09T02:21:32.903 に答える