我有一个表单,我允许用户创建一个名称列表。我还需要允许他们为每个名称指定事件的 rsvp 状态。
以下是表单的部分:
<li>
<div id="dynamicInput">
Name 1<br><input type="text" name="myInputs[]"> Attending Brunch? Yes<input name="attending[]" type="checkbox" value="Attending Brunch" /> No<input name="notattending[]" type="checkbox" value="Not Attending Brunch" /><br>
Name 2<br><input type="text" name="myInputs[]"> Attending Brunch? Yes<input name="attending[]" type="checkbox" value="Attending Brunch" /> No<input name="notattending[]" type="checkbox" value="Not Attending Brunch" /><br>
Name 3<br><input type="text" name="myInputs[]"> Attending Brunch? Yes<input name="attending[]" type="checkbox" value="Attending Brunch" /> No<input name="notattending[]" type="checkbox" value="Not Attending Brunch" /><br>
Name 4<br><input type="text" name="myInputs[]"> Attending Brunch? Yes<input name="attending[]" type="checkbox" value="Attending Brunch" /> No<input name="notattending[]" type="checkbox" value="Not Attending Brunch" /><br>
Name 5<br><input type="text" name="myInputs[]"> Attending Brunch? Yes<input name="attending[]" type="checkbox" value="Attending Brunch" /> No<input name="notattending[]" type="checkbox" value="Not Attending Brunch" /><br>
</div>
<input type="button" value="Add another volunteer" onClick="addInput('dynamicInput');">
</li>
这是在电子邮件中返回信息的 php:
$myInputs = $_POST['myInputs'];
foreach ($myInputs as $eachInput) {
$message .= $eachInput . " - " ;
}
$attending = $_POST['attending'];
foreach ($attending as $moreInput) {
$message .= $moreInput . "<br><br>";
}
$notattending = $_POST['notattending'];
foreach ($notattending as $moreInput) {
$message .= $moreInput . "<br><br>";
}
$contact = $_POST['contact'];
$from = "$name <$email>";
$to = $_POST['recipient']; //"kim@ka-kingdesigns.com";
$subject = "Day of Caring Team Registration".$_POST['subject'];
$comments = "
<strong>Team Members</strong><br> {$message}<br><br>;
现在它返回输入的信息如下:
团队成员 Kim - 参加早午餐 - 多诺万 - - - - 不参加早午餐
我需要它像这样返回:
团队成员
金 - 参加早午餐
多诺万 - 不参加早午餐
谁能帮忙?
就目前情况而言,您正在循环浏览表单上人员姓名的整个列表; 然后您循环浏览与会者列表; 然后您循环浏览非与会者列表。
我建议明确编号字段:
Name 1<br><input type="text" name="name_1">
Attending Brunch? Yes<input name="attending_1" type="radio" value="Yes" />
No<input name="attending_1" type="radio" value="No" /><br>
这使得处理数据变得更加容易:
$count = 1;
while (isset($_POST["name_" . $count])) {
$message .= $_POST["name_" . $count] . " - " $_POST["attending_" . $count] . "'n";
}
(抱歉,如果语法有点不对劲 - 我整天都在写perl,语法足够接近,当我尝试切换回来时会导致问题)
如果你想使用 javascript 添加一个额外的条目,它只需要遍历表单以找到最高的现有条目,并使用下一个可用的数字来生成字段名称。