【问题标题】:PHP Email Send value of checkbox Yes if checked No if UncheckedPHP电子邮件发送复选框的值是,如果选中,否如果未选中
【发布时间】:2014-02-23 02:11:30
【问题描述】:

您好,我正在创建一个 HTML + PHP 电子邮件表单。除了我的复选框之外,我的表单和功能都可以正常工作。我有两个复选框。

<input type="checkbox" id="boxfan" name="boxfan[]"/>
<label for="boxfan">A fan?</label>

<input type="checkbox" id="boxgbps" name="boxfan[]"/>
<label for="boxalbum">Bought an album?</label>

我希望将值发送为“是”或“否”,如果选中则发送“是”,如果未选中则发送“否”。

例如:

粉丝?是的

买了专辑?没有

任何建议,我们将不胜感激。谢谢。

我的实际表格is here 是丹麦语,这就是为什么我只使用了一个简单的例子。

【问题讨论】:

  • $yn = (isset($_POST['boxfan'][$i])) ? 'Yes' : 'No'。由于复选框除非被选中,否则不会提交,因此 _POST 中仅存在复选框名称就意味着它已被选中。
  • 在我看到你所拥有的 PHP 之前,我不会给出答案。看到你发布的代码,你(并且你已经知道)做错了。像这样的问题,(我从经验中得出这个结论)总是倾向于打开一个“蠕虫罐头”。有太多的方法可以解决这个问题。到目前为止,Marc B 的评论 (+1) 是一个很好的方法,使用了三元运算符。
  • @MarcB 是对的。他的建议是一个简单的三元组,如果它被设置(是唯一的复选框),它是。如果它不(存在),它自动为否。 '这是唯一的方法(除了可能通过 JS 复杂地创建任意“否”复选框)
  • 谢谢大家,看来你是对的,那我就用一个条件。谢谢,不胜感激。

标签: php html email checkbox


【解决方案1】:

如果您想在单独的电子邮件中发送每个:

foreach($_POST['boxfan'] as $boxfan){
    if(isset($boxfan)){
        $message = "Yes";
        mail($to, $subject, $message);
    } else{
        $message = "No";
        mail($to, $subject, $message);
    }
}

但如果您想在一封电子邮件中同时发送:

$message = null;
foreach($_POST['boxfan'] as $boxfan){
    if(isset($boxfan)){
        $message .= "Yes\r\n";
    } else{
        $message .= "No\r\n";
    }
}
mail($to, $subject, $message);

【讨论】:

  • 这个很有意思,我试试这个。
【解决方案2】:

Rails 就是这样做的:

<input type="hidden" name="boxfan" value="No"/>
<input type="checkbox" id="boxgbps" name="boxfan" value="Yes"/>

[EDIT] 但你将无法将其设为数组变量。

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 2011-01-14
    • 2014-06-22
    • 2011-10-29
    • 2017-05-29
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多