Потеря значений радиосвязи в клонированных полях формы jQuery

Я не очень хорошо разбираюсь в формах 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 = "[email protected]";
$subject = "Wedding RSVP";
$headers = "From: [email protected]";
$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 F Y, g:i a") . "\n";

mail($to,$subject,$body,$headers);
}

?>

Моя простая проверка ошибок $ также, кажется, имеет загвоздку. Если в данный момент я отправляю форму, в которой ничего не заполнено, она отображает только сообщение об ошибке, касающееся пустых переключателей, а не пустого поля «имя».

Любая помощь была бы действительно удивительной, так как я изо всех сил пытаюсь закончить это.

Спасибо 🙂

…Извините, я должен был указать, что это пример того, что я получаю по электронной почте в настоящее время, если, скажем, я получаю RSVP для 3 имен:

The following RSVP has been sent via the website.Name 1 : Dave Jones

Coming 1 : YesName 2 : Amy Jones

Coming 2 :Name 3 : Carl Jones

Coming 3 :Date Received: 16 April 2017, 2:38 pm

1

Решение

Я посмотрел на HTML, генерируемый вашим misc.js Javascript и тому name атрибут устанавливается в coming[]1,coming[]2,

То, что я хотел бы предложить, это либо:

1) сохраняя их как coming[]и поэтому ваш запрос будет иметь coming как массив. Затем вы можете пройти через это, используя тот же индекс, что и name,

2) Замена coming[] с coming1,coming2,coming3используя ваш jquery, а затем обрабатывая их как отдельные переменные в вашем PHP.

0

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

понимаете ли вы, что в переключателе нет значения, если вы «добавили еще одного гостя» .. в поле 1 значение существует, но оно пусто для поля 2,3,4 и т. д. … может быть, поэтому оно отправляет пустое значение, когда Вы отправляете форму ..

пустое значение переключателя

0

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