0

複数選択オプション (以下のコーディングでは「国」という名前) からデータを送信するフォームを取得できません。私はすでにここでいくつかの回答をチェックアウトしましたが、私はそれがうまくいかない方法と理由を理解できるPHPの天才ではありません. テストすると、フォームは最後に選択されたオプションを送信し、それだけです。

私のHTMLコードは次のとおりです。

<form class="well" action="contact-send.php" method="post">
            <input type="text" class="span4" name="name" placeholder="Your name" /><br />
            <input type="text" class="span4" name="email" placeholder="Your email address" /><br />
            <select class="span4" multiple="multiple" name="country[]" size="5" style="padding:4px;">
            <option value="Thailand">Thailand</option>
            <option value="Cambodia">Cambodia</option>
            <option value="Laos">Laos</option>
            <option value="Vietnam">Vietnam</option>
            <option value="India">India</option>
            <option value="Japan">Japan</option>
            <option value="Philippines">Philippines</option>
            <option value="Bhutan">Bhutan</option>
            <option value="Singapore">Singapore</option>
            <option value="Borneo">Borneo</option>
            <option value="Myanmar">Myanmar</option>
            <option value="Malaysia">Malaysia</option>
            <option value="China">China</option>
            <option value="Nepal">Nepal</option>
            <option value="Sri Lanka">Sri Lanka</option>
            <option value="North Korea">North Korea</option>
            </select>
            <input type="date" class="span4" name="departure" placeholder="Departure date" /><br />
            <input type="text" class="span4" name="days" placeholder="Number of days" /><br />
            <input type="text" class="span4" name="travelers" placeholder="Number of travelers" /><br />
             <button class="btn btn-primary" type="submit" name="submit" value="Submit">Submit</button>
        </form>    

私のPHPコードは次のとおりです。

<?php

if (isset($_POST['submit'])) {
$msg = 'Name: ' .$_POST['name'] ."\n"
.'Email: ' .$_POST['email'] ."\n"
.'Countries: ' .$_POST['country'] ."\n"
.'Departure Date: ' .$_POST['departure'] ."\n"
.'Number of Days: ' .$_POST['days'] ."\n"
.'Number of Travelers: ' .$_POST['travelers'] ."\n";



mail ('me@myemailaddress.com', 'Landing Page Enquiry', $msg);

 header ('location: send-success.php');

} else {
header('location: send-failed.php');
exit(0);
}
?>
4

1 に答える 1

0

フォーム要素に次の名前を付けました:

name="country[]" 

$_POST['country'] は配列です。配列のすべての要素、つまりすべての選択が必要な場合は、次のようにします。

if (isset($_POST['submit'])) {
    $countries =  implode(' ', $_POST['country']);
}
于 2013-04-22T03:03:43.013 に答える