Php 通过表单过帐获取复选框值

Php 通过表单过帐获取复选框值,php,forms,checkbox,Php,Forms,Checkbox,我试图从表单中获取复选框值。该复选框是一个“您是否希望注册我们的新闻稿”类型框 我已成功使其工作,但只有在框中勾选以下代码时: $signUp = $_POST['sign-up'][0]; if ($signUp !== 'Yes'){ $signUp = 'No'; } 该复选框如下所示: <input type="checkbox" id="sign-up" name="sign-up[]" value="Yes" /> 问题是,如果该框未选中,则会出现未定义的

我试图从表单中获取复选框值。该复选框是一个“您是否希望注册我们的新闻稿”类型框

我已成功使其工作,但只有在框中勾选以下代码时:

$signUp = $_POST['sign-up'][0];
if ($signUp !== 'Yes'){
    $signUp = 'No';
}
该复选框如下所示:

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

问题是,如果该框未选中,则会出现未定义的错误

判断框是否被选中的正确方法是什么?我只需要在电子邮件中发送“No”值,因此我将此文本硬编码到变量中

如何在PHP中获取复选框的值(无论是选中还是未选中)

您可以这样做-

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

如果选中一个
复选框
,则-

<input type="checkbox" id="sign-up" name="sign-up" value="Yes" />
很好。你可以这样做-

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

如果选中一个
复选框
,则-

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

将正常工作。

在名称末尾添加
[]
会告诉PHP您希望在一个数组中得到结果(这意味着您希望得到多个结果)

if(isset($_POST['sign-up'][0]) && !empty($_POST['sign-up'][0]))
{
    $signUp = 'Yes';
}
else
{
    $signUp = 'No';
}
这意味着您需要进行两项检查:

  • 是否检查了任何值
  • 检查哪些值
例如:


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

这意味着您需要进行两项检查:

  • 是否检查了任何值
  • 检查哪些值
例如:

“选中了哪些值?”–这很难确定输入字段名是否只是
注册[]
,因为我们都知道,对于未选中的复选框,根本不会提交名称=值对。因此,要想知道选中了哪些复选框,应该预先指定索引,
name=“注册[0]”
name=“注册[1]”“
等(或非零基/非数字索引,如果更适合数据结构),“检查哪些值?”–很难确定输入字段名称是否只是
注册[]
,因为我们都知道,对于未选中的复选框,根本不会提交名称=值对。因此,要想知道选中了哪些复选框,应该预先指定索引,
name=“sign-up[0]”“
name=“sign-up[1]”
等(或者非零基/非数字索引,如果更适合数据结构的话)