对不起我的英语,我使用谷歌翻译。
未标记复选框时返回错误。
例如,如果您没有选中一个复选框(列表中的第五个复选框),则返回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>';
答案 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>';
}