如果取消选中该复选框,我试图设置我的复选框,它会在我的.txt文件中保存为空白(跳到下一个)(“”)/ tab(“\ t”),并且至少检查了1box。这是我的代码:
我的HTML
<p>Hobbies:
<input type="checkbox" name="ahobby[]" value="swimming" />Swimming
<input type="checkbox" name="ahobby[]" value="reading" />Reading
<input type="checkbox" name="ahobby[]" value="gaming" />Playing Games
</p>
和我的php
至少打了一个方框:
if(!isset($ _POST [“ahobby”])|| empty($ _ POST [“ahobby”])){
$err_msg .= "<p>Please select your Hobby</p>";
}
以下保存未勾选为空白/标签的复选框,然后保存到下一个项目
$check_ary = array ("swimming", "reading", "gaming");
$h = 0;
for ($i = 0; $i < count($check_ary);$i++) {
if ($check_ary[$i] == $ahobby[$h]) {
fwrite($handle, "$ahobby[$h]\t");
$h++;
} else { // saves a blank
fwrite($handle, "\t");
}
}
// to the next line by using new line
fwrite($handle, "\n");
fclose ($handle);
当我没有选择第三个复选框(游戏)时出现问题,它表示未定义的偏移量:1,如果我单独加厚第3个盒子/ 3个(游戏)&amp; 1(游泳)/ 3(游戏)&amp; 2(阅读),完全没有问题。而不是创建一个新行(\ n),它只是创建一个新标签。 有人有答案吗?谢谢!
答案 0 :(得分:0)
您可以考虑将代码放在if条件中,如下所示:
$check_ary = array ("swimming", "reading", "gaming");
$check_empty = 0;
for ($i = 0; $i < count($check_ary);$i++) {
if (isset($ahobby[$i])) {
if ($check_ary[$i] == $ahobby[$i]) {
fwrite($handle, "{$ahobby[$i]}\t");
}
} else {
// Keeps track of the empty checkboxes;
$check_empty++;
}
if ($check_empty >= 3) {
fwrite($handle, "\t");
}
}