Java — несколько форм на одной странице

У меня есть 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 = "[email protected]"; // 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 или другим решением?

0

Решение

Если вы переключите имена всех ваших входов, чтобы закончить с []как например 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>

Теперь все параметры записи будут храниться в массивах, создавая несколько одинаковых значений.
Затем мы должны перебрать каждый из них и отправить письмо для каждого элемента в массиве.

<?php
if( $_SERVER['REQUEST_METHOD'] == "POST" ){
$i = 0;
foreach( $_POST['email'] AS $from ){
$to = "[email protected]";
$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++;
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]