我不擅长 PHP 表单和邮件功能,但是...
我正在尝试建立自己和 RSVP 表格(http://adrianandemma.com/),人们可以在其中添加他们的姓名并选择是/否参加。他们还可以单击链接以回复其他人。如果单击,这将通过 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 F Y, g:i a") . "\n";
mail($to,$subject,$body,$headers);
}
?>
我的简单 $error 验证似乎也有问题。如果我提交的表单目前没有填写任何内容,它只会向我显示有关空单选按钮而不是空的“名称”字段的错误消息,不知道为什么会这样?
任何帮助都会非常棒,因为我正在努力完成这项工作。
谢谢 :)
...抱歉应该包括这是我目前通过电子邮件收到的内容的一个示例,如果说我收到了 3 个姓名的回复:
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