0

I have a form that I allows the user to create a list of names. I need to also allow them to designate an rsvp status for an event for each name.

Here is the section of the form:

<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>

This is the php that is returning the information in an email:

$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>;

Right now it return info entered like this:

Team Members Kim - Attending Brunch - Donovan - - - - Not Attending Brunch

I need it to return like this:

Team Members
Kim - Attending Brunch
Donovan - Not Attending Brunch

Can anyone help?

4

1 に答える 1

0

現状では、フォーム上の人の名前のリスト全体をループしています。次に、出席者のリストをループします。次に、非出席者のリストをループしています。

フィールドに明示的に番号を付けることをお勧めします。

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 を使用して追加のエントリを追加する場合は、フォームをループして既存のエントリの最上位を検索し、次に使用可能な番号を使用してフィールド名を生成するだけです。

于 2012-06-08T18:19:20.710 に答える