我正在尝试从表单中获取复选框值。复选框是"您是否希望注册我们的简报"打字箱。
我已设法让它工作,但只有在使用以下代码勾选方框时才能使用
$signUp = $_POST['sign-up'][0];
if ($signUp !== 'Yes'){
$signUp = 'No';
}
复选框如下所示:
<input type="checkbox" id="sign-up" name="sign-up[]" value="Yes" />
问题是,如果框不选中,则会收到未定义的错误。
推断盒子是否已被检查的正确方法是什么?我只需要发送&#34;否&#34;电子邮件中的值以及为什么我将此文本硬编码到变量中。
如何在PHP 中获取复选框(已选中或未选中)的值?
答案 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}作为你唯一的考验。