【问题标题】:PHP Checkbox, Unchecked box optionPHP 复选框,未选中的框选项
【发布时间】:2014-04-12 18:48:47
【问题描述】:

如果未选中复选框,我试图制作我的复选框,它会在我的 .txt 文件中保存为空白(跳到下一个)(“”)/制表符(“\t”),并且至少选中了 1 个框。这是我的代码:

我的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

至少勾选了 1 个框:

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(游戏)& 1(游泳)/ 3(游戏)&2(阅读) ),完全没有问题。而不是创建一个新行 (\n),它只是创建一个新标签。 有人有答案吗?谢谢!

【问题讨论】:

    标签: php html checkbox


    【解决方案1】:

    您可以考虑将您的代码放在这样的 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");
             }
    
        }
    

    【讨论】:

    • 它可以工作,但唯一的问题是当我只选择第二个和第三个 / 选择没有第一个数组(游泳)时,它不会将值写入我的 .txt 文件。有什么建议吗?无论如何感谢您的帮助
    • 这是因为两个数组(即 ahobby 和 check_ary)的值不匹配,因为当您开始选择匹配的“阅读”时,数组 $ahobby 的索引从 0 开始以$check_ary[0] 的值为“游泳”作为其值。
    • 解决方法可能是获取输入复选框值的名称以静态方式索引(即&lt;input type="checkbox" name="ahobby[0]" value="swimming" /&gt;Swimming ahobby[1] 用于阅读等)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多