如果未选中某个复选框,如何避免错误消息

时间:2017-07-15 01:15:39

标签: php

对不起我的英语,我使用谷歌翻译。

未标记复选框时返回错误。

例如,如果您没有选中一个复选框(列表中的第五个复选框),则返回Undefined variable: z5

如果未选中,则两个复选框会返回Undefined variable: z5 in ....Undefined variable: z6 in .....

我正在使用动态变量。

如何避免这些PHP错误注意:未定义的变量:

if (isset($_POST["cor_fundo"])) {

    $optionArray = $_POST["cor_fundo"];

    for ($i = 0; $i < count($optionArray); $i++) {
        $codCores=$codCores.$optionArray[$i].",";
    }
    $codCores = substr($codCores,0,-1);

    $cores = explode(",", $codCores);

    for ($k = 0; $k < count($optionArray); $k++) {

        $item = "z".$cores[$k];

        $$item = " checked";
    }
}


$pdo = db_connect();
   $sql = "SELECT * FROM cor_fundo";
   $query = $pdo->prepare($sql);
   $query->execute();
   $option = "";
   $result = $query->fetchAll(PDO::FETCH_ASSOC);

   $quant = count($result);

$i=1;
foreach ($result as $row) {
    $id = $row['cor_fundo_id'];
    $nome = $row['cor_fundo_nome'];
        $item = "z".$i;
        $option.='<label class="checkbox-inline"><input type="checkbox" name="cor_fundo[]" value="'.$id.'" '.$$item.'>'.$nome.'</label>';
 $i=$i+1;
 }   

echo '<form method="post" action="">';    
echo $option;
echo '<br><button type="submit">Enviar</button>';
echo '</form>';

2 个答案:

答案 0 :(得分:0)

在foreach之外尝试此代码。

 if(count($cores) > 0){
        for ($k = 0; $k < count($optionArray); $k++) {

            $item = "z".$cores[$k];

            $$item = " checked";
        }
    }

答案 1 :(得分:0)

解决方案是在开头定义变量

for ($k = 0; $k <= $quant; $k++) {

    $item = "z".$k;

    $$item = "";
}

$optionArray = $_POST["cor_fundo"];
..................................      
..................................

if (isset($_POST["cor_fundo"])) {
    $item = "z".$i;
    $option.='<label class="checkbox-inline"><input type="checkbox" name="cor_fundo[]" value="'.$id.'" '.$$item.'>'.$nome.'</label>';
}else{
    $option.='<label class="checkbox-inline"><input type="checkbox" name="cor_fundo[]" value="'.$id.'">'.$nome.'</label>';
}