【问题标题】:PHP Checkbox Verification KeeperPHP 复选框验证管理器
【发布时间】:2015-08-19 15:40:56
【问题描述】:

我有一个处理姓名/电话/评论/等的评论部分。我也有这种形式的复选框。当复选框集为空时,我会产生错误异常。但是,如果选中了框,并且其他区域不满意,那么当错误被抛出到其他地方并重新加载页面时,我无法让框保持选中状态。

我尝试将 if 语句中的值和 $response 设置为是,但是如果选中了一个框,则当页面重新加载时,所有框都会被选中。

PHP:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["response"])) {
        $responseErr = "Response is required";
    } else {
        $response = test_input($_POST["response"]);
    }
}


How would you prefer us to respond? Choose all that apply.
<span class="error">* 
    <?php echo $responseErr;?>
</span> 
<br>
<input type="checkbox" name="response" <?php if (isset($response) && $response=="Call") echo "checked";?> value="Call">Call
<input type="checkbox" name="response" <?php if (isset($response) && $response=="Text") echo "checked";?> value="Text">Text
<input type="checkbox" name="response" <?php if (isset($response) && $response=="Email") echo "checked";?> value="Email">E-mail
<br><br>

【问题讨论】:

  • 勾选多个复选框会怎样?您将在 $response 中仅获得 1 个值。并且只会选中 1 个复选框。

标签: php forms validation checkbox


【解决方案1】:

另一种解决方案是为每个复选框指定一个唯一名称(电话响应、电子邮件响应、文本响应),然后单独检查每个复选框。当然,这意味着更多的代码,但我以后很容易实现和管理。

【讨论】:

  • 你是对的。必须给每个项目自己唯一的名称并单独检查每个项目。还必须每次为所有条目编辑每个唯一检查的错误检查代码。我会发布答案
【解决方案2】:

已解决:

有人提到我应该给每个输入自己的名字。

How would you prefer us to respond? Choose all that apply.<span class="error">* <?php echo $responseErr;?></span><br>
                <input type="checkbox" name="callResponse" <?php if (isset($callResponse) && $callResponse=="Yes") echo "checked";?> value="Yes">Call
                <input type="checkbox" name="textResponse" <?php if (isset($textResponse) && $textResponse=="Yes") echo "checked";?> value="Yes">Text
                <input type="checkbox" name="emailResponse" <?php if (isset($emailResponse) && $emailResponse=="Yes") echo "checked";?> value="Yes">E-mail<br><br>

此外,在错误检查中,您需要针对空条目测试所有 3 个输入。否则即使选中了一个框,仍然会显示错误消息。

if (empty($_POST["callResponse"]) && empty($_POST["textResponse"]) && empty($_POST["emailResponse"])) {
        $responseErr = "Response is required";
    } else {
        $callResponse = test_input($_POST["callResponse"]);
    }

    if (empty($_POST["callResponse"]) && empty($_POST["textResponse"]) && empty($_POST["emailResponse"])) {
        $responseErr = "Response is required";
    } else {
        $textResponse = test_input($_POST["textResponse"]);
    }

    if (empty($_POST["callResponse"]) && empty($_POST["textResponse"]) && empty($_POST["emailResponse"])) {
        $responseErr = "Response is required";
    } else {
        $emailResponse = test_input($_POST["emailResponse"]);
    }

【讨论】:

    猜你喜欢
    • 2011-10-11
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多