通过表单POST获取复选框值

时间:2015-06-16 08:20:48

标签: php forms checkbox

我正在尝试从表单中获取复选框值。复选框是"您是否希望注册我们的简报"打字箱。

我已设法让它工作,但只有在使用以下代码勾选方框时才能使用

$signUp = $_POST['sign-up'][0];
if ($signUp !== 'Yes'){
    $signUp = 'No';
}

复选框如下所示:

<input type="checkbox" id="sign-up" name="sign-up[]" value="Yes" />

问题是,如果框选中,则会收到未定义的错误。

推断盒子是否已被检查的正确方法是什么?我只需要发送&#34;否&#34;电子邮件中的值以及为什么我将此文本硬编码到变量中。

如何在PHP 中获取复选框(已选中或未选中)的值?

3 个答案:

答案 0 :(得分:9)

你可以这样做 -

$signUp = !empty($_POST['sign-up'][0]) ? 'Yes' : 'No'; // Will check if the checkbox is checked or posted

无需 - if ($signUp !== 'Yes'){

如果只有一个checkbox那么 -

<input type="checkbox" id="sign-up" name="sign-up" value="Yes" />

并且

$signUp = !empty($_POST['sign-up']) ? 'Yes' : 'No';

会正常工作。

答案 1 :(得分:2)

MyFindFunctionInSet

答案 2 :(得分:0)

在名称的末尾加上[]告诉PHP你希望结果在一个数组中(并暗示你期望得到多个结果)。

这意味着你需要做两次检查:

  • 是否检查了任何值?
  • 检查了哪些值?

这样:

<?php
    if (isset($_POST['sign-up'])) {
        $signUp = $_POST['sign-up'][0];
        if ($signUp !== 'Yes'){
            $signUp = 'No';
        }
    }

如果您没有发送多个值(其中包含&#34;是&#34;隐含价值),请从名称中删除[],然后您只需使用{{1}作为你唯一的考验。