Я не очень хорош с PHP-формами и функциями почты, но …
Я пытаюсь создать форму и форму RSVP ( http://adrianandemma.com/ ), где люди могут добавить свое имя и выбрать «да / нет» для участия. Они также могут щелкнуть ссылку на RSVP для другого человека. Если щелкнуть, это будет клонировать имя и радио с помощью jQuery.
Когда форма отправлена, я пытаюсь отправить данные через меня по электронной почте. Письмо электронной почты в настоящее время отправляется, и если я получаю электронное письмо по 3 именам RSPV сразу, то 3 значения имени проходят через почту по электронной почте, но у меня есть только значение для ответа на да / нет для первого лица.
Может ли кто-нибудь помочь диагностировать, почему мои клонированные значения переключателя не отправляются по электронной почте?
Вот моя форма:
<form action="?" method="post"> <?php if(@$errors) :?> <p class="errors"><?php echo $errors; ?></p> <?php endif; ?> <input type="hidden" name="submit" value="1" /> <div class="form-row"> <div class="field-l"> <p>Name</p> </div> <div class="field-r"> <p>Attending?</p> </div> </div> <div class="form-row guest"> <div class="field-l"> <input type="text" name="name[]" id="name" value="<?php echo htmlspecialchars(@$_REQUEST['name']); ?>" tabindex="1" /> </div> <div class="field-r"> <input type="radio" name="coming[]" id="coming-yes" class="coming-yes" value="Yes"><label for="coming-yes">Yes</label><input type="radio" name="coming[]" id="coming-no" class="coming-no" value="No"><label for="coming-no">No</label> </div> </div> <a class="addguest" href="#">Add further guest</a> <div class="form-row"> <button type="submit" id="rsvp-submit" tabindex="2">Submit RSVP</button> </div> </form>
… и вот мой почтовый код php:
<?php $name = $_POST['name']; $coming = $_POST['coming']; $errors = ""; if(!@$_POST['name']) { $errors .= "Please enter your name.<br/>\n"; } if(!@$_POST['coming']) { $errors .= "Please enter yes or no for attending.<br/>\n"; } if(@$_POST['emailaddress'] != '') { $spam = '1'; } if (!$errors && @$spam != '1') { $to = "xxx@example.com"; $subject = "Wedding RSVP"; $headers = "From: noreply@adrianandemma.com"; $body = "The following RSVP has been sent via the website.\n\n"; for($i=0; $i < count($_POST['name']); $i++) { $body .= " Name ".($i+1)." : " . $_POST['name'][$i] . "\n Coming ".($i+1)." : " . $_POST['coming'][$i] ."\n\n"; } $body .= "\n\nDate Received: " . date("j FY, g:ia") . "\n"; mail($to,$subject,$body,$headers); } ?>
Мое простое подтверждение ошибки в ошибке также похоже на заторможенность. Если я отправлю форму без заполнения, она покажет мне сообщение об ошибке относительно пустых переключателей, а не пустое поле «имя», не знаете, почему это так?
Любая помощь будет действительно потрясающей, поскольку я изо всех сил пытаюсь добиться этого.
Благодаря 🙂
… извините, должно было включить, что это пример того, что я получаю по электронной почте в настоящее время, если говорю, что получаю RSVP для трех имен:
The following RSVP has been sent via the website. Name 1 : Dave Jones Coming 1 : Yes Name 2 : Amy Jones Coming 2 : Name 3 : Carl Jones Coming 3 : Date Received: 16 April 2017, 2:38 pm