Java 同一页上有多个表单

Java 同一页上有多个表单,java,php,ajax,Java,Php,Ajax,我在同一页上有12个表格,每个表格都需要能够在上面提交。 提交时,信息应通过电子邮件发送给我。我使用PHP循环创建产品的表单: <?php foreach ($_productCollection as $_product): ?> <form action="" method="post"> <p> <textarea class="finalT

我在同一页上有12个表格,每个表格都需要能够在上面提交。 提交时,信息应通过电子邮件发送给我。我使用PHP循环创建产品的表单:

    <?php foreach ($_productCollection as $_product): ?>

     <form action="" method="post">
                    <p>
                        <textarea class="finalTextArea" name="message" id="textarea" placeholder="Motivering MAX 50 Tecken"></textarea>
                    </p>
                    <p>
                        <input type="text" class="finalText" name="name" id="textfield" placeholder="För och Efternamn">
                    </p>
                    <p>
                        <input type="text" class="finalText" name="email" id="textfield2" placeholder="E-mail">
                    </p>
                    <p>
                        <input type="submit" class="finalTextSubmit" name="submit" value="Rösta!">
                    </p>
                </form> 
我正试图使用以下代码通过电子邮件将表格发送给我:

          <?php
          if(isset($_POST['submit'])){
          $to = "martin@imonline.se"; // this is your Email address
          $from = $_POST['email']; // this is the sender's Email address
          $first_name = $_POST['name'];
          $subject = "Form submission";
          $subject2 = "Copy of your form submission";
          $message = $first_name . " " . " wrote the following:" . "\n\n".            $_POST['message'];
          $message2 = "Here is a copy of your message " . $first_name . "\n\n" .    $_POST['message'];

          $headers = "From:" . $from;
          $headers2 = "From:" . $to;
          mail($to,$subject,$message,$headers);
          mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
          echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";

          }


          ?>

它在第一个表单上工作,当它被提交时,它将根本不工作。有没有一种方法可以通过AJAX或其他解决方案实现这一点

如果您将所有输入的名称切换为以[]结尾,例如name=message[],则可以提交多条消息。如果你选择这样做,你将不得不在一个单一的形式,但所有字段。类似于以下内容的内容虽然我没有测试过,所以它可能包含一些缺陷,但这只是为了提供另一种解决问题的方法:

<form action="" method="post">
<?php 
    foreach ($_productCollection as $_product){ 
?>
    <p>
        <textarea class="finalTextArea" name="message[]" id="textarea" placeholder="Motivering MAX 50 Tecken"></textarea>
    </p>
    <p>
        <input type="text" class="finalText" name="name[]" id="textfield" placeholder="För och Efternamn">
    </p>
    <p>
        <input type="text" class="finalText" name="email[]" id="textfield2" placeholder="E-mail">
    </p>

<?php
    }
?>
    <p>
        <input type="submit" class="finalTextSubmit" name="submit" value="Rösta!">
    </p>    
</form> 
现在,所有post参数都将存储在数组中,从而创建多个相同的值。 然后我们必须循环遍历每个元素,并为数组中的每个元素发送邮件

<?php
    if( $_SERVER['REQUEST_METHOD'] == "POST" ){
        $i = 0;
        foreach( $_POST['email'] AS $from ){
            $to = "martin@imonline.se";
            $first_name = $_POST['name'][$i];
            $subject = "Form submission";
            $subject2 = "Copy of your form submission";
            $message = $first_name . " " . " wrote the following:" . "\n\n".            $_POST['message'][$i];
            $message2 = "Here is a copy of your message " . $first_name . "\n\n" .    $_POST['message'][$i];

            $headers = "From:" . $from;
            $headers2 = "From:" . $to;
            mail($to,$subject,$message,$headers);
            mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
            echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
            $i++;
        }
    }

您可以使用ajax,也可以只使用一个输入类型=submit,这是在我看来唯一的方法。谢谢,你能不能解释一下,只用一种输入法?我能不能只贴一块,如果可以的话,然后你就可以往上走。谢谢并发表评论@Arif_suhail_123,这样我就可以得到通知,你发布了一些东西,你得到了你的解决方案,和我要发布的一样