如何在 php 变量中使用多个 if(isset($_POST))

how to use multiple if(isset($_POST)) inside php variable

在包含 select 产品的多个复选框的页面上,我想发送一封带有 selected 复选框的电子邮件。

下面的代码在点击提交按钮后成功输出了我喜欢的东西,但是在网页上。我只是不知道如何将结果包含在电子邮件中。

这是 html 表格:

<form action="" method="post">
    <label for="product1"><input type="checkbox" class="equipment[]" id="product1" name="product1" value="100">Add to inquiry</label>
    <label for="product2"><input type="checkbox" class="equipment[]" id="product2" name="product2" value="50">Add to inquiry</label>
    <label for="product3"><input type="checkbox" class="equipment[]" id="product3" name="product3" value="80">Add to inquiry</label>
    <input type="submit" name="submit" class="formsubmitbtn" value="Send inquiry">
</form>

这是在页面上成功打印结果的PHP代码:

<?php
    if(isset($_POST['product1'])){
    echo "checked Product Name 1"."<br>";
    }
    if(isset($_POST['product2'])){
        echo "checked Product Name 2"."<br>";
    }
    if(isset($_POST['product3'])){
        echo "checked Product Name 3";
    }
?>

结果(对我来说是完美的)是:
选中产品名称 1
选中产品名称 2
选中产品名称 3

现在我想将结果放在电子邮件中。这是电子邮件的 PHP:

<?php 
if(isset($_POST['submit'])){
    $to = "myemailaddress";
    $from = $_POST['email']; // this is the sender's Email address

    $gearselection = ???;

    $subject = "Inquiry";
    $message = $from . "\n\n" . $gearselection;

    $headers = "From:" . $from;
    mail($to,$subject,$message,$headers);
    echo "Your inquiry has been sent.";
    }
?>

并且在 $gearselection 我想输出上面代码的结果。

有人能帮忙吗?

首先,得到方括号的应该是 name 属性,而不是 class 并且这个 name 属性应该在 input 复选框上定义不是 label.

<form action="" method="post">
  <input type="checkbox" name="product[]" id="product1" value="Product 1">
  <label for="product1">Product 1</label>

  <input type="checkbox" name="product[]" id="product2" value="Product 2">
  <label for="product2">Product 2</label>

  <input type="checkbox" name="product[]" id="product3" value="Product 3">
  <label for="product3">Product 3</label>

  <input type="submit" name="submit" class="formsubmitbtn" value="Send inquiry">
</form>

然后在 PHP 一侧,您将获得一组值,具体取决于为 $_POST['product'] 勾选的内容 - 您可以循环遍历它们以获取所有已检查的项目已选中。

if(!empty($_POST['product'])) {
  foreach($_POST['product'] as $p) {
    echo $p;
  }
}

在您的电子邮件中,您可以执行以下操作:

if(!empty($_POST['product'])) {
  $gearselection = implode(', ', $_POST['product']);
}