私は説明する方法がわからないという問題がありますが、私はベストを尽くします。HTML、PHPマルチ複数のフィールドを1つの配列で選択する問題
私は必要に応じて動的に追加することができます選択フィールドフォームがあります。ユーザーが
Person 2: Select Allergies
1.Nut
2.Gluten
3.Meat
に底に別の人を追加するには、+ボタンを押すと、この時点で
Person 1: Select your allergies
1.Nut
2.Gluten
3.No meat....
が私のHTML
<select name="s_allergies[]" class="form-control" multiple>
<option value="none" selected>None</option>
<option value="Gluten">Gluten Allergy</option>
<option value="Nut">Nut Allergy</option>
<option value="Shellfish">Shellfish Allergy</option>
<option value="Lactose">Lactose Allergy</option>
<option value="Egg">Egg Allergy</option>
<option value="Vegetarian">Vegetarian</option>
<option value="Vegetarian with Seafood">Vegetarian/Seafood</option>
<option value="No Pork">No Pork</option>
<option value="No Red Meat">No Red Meat</option>
</select>
である私は(フォームを処理するために、このコードを以下のよ他のすべてのフィールドで機能します)。何らかの理由で、マルチセレクトフィールドは、2つ以上が選択されていても1つの値しか出力しません。
if(!empty($_POST['s_fname'])){ //checks if an additional attendee has been added
$s_fname = $_POST['s_fname'];
$s_lname = $_POST['s_lname'];
$s_title = $_POST['s_title'];
$s_type = $_POST['s_type'];
$s_celebration = $_POST['s_celebration'];
$s_allergies = $_POST['s_allergies'];
for($i = 0; $i < count($s_fname); $i++){
if(!empty($s_fname[$i])){
$sfname = escape($s_fname[$i]);
$slname = escape($s_lname[$i]);
$stitle = escape($s_title[$i]);
$stype = escape($s_type[$i]);
$scelebration = escape($s_celebration[$i]);
$sallergies = escape(implode(",", $s_allergies[$i]));
//query to insert to attendee database
echo "$sfname $slname $stitle $stype $scelebration $sallergies";
}
}
}
EDIT:それは1列にすべてを入れているようだ。これは私が得るものです、 は変数をダンプ: はここに画像 EDIT2ですか?最初のフィールドでは、グルテンとナッツを選びました。第二の人は、貝とラクトースを選びました。
Array
(
[0] => Gluten
[1] => Nut
[2] => Shellfish
[3] => Lactose
)
データの受信方法を確認するために$ _POSTをダンプしようとしましたか? –
'アレイ ( [0] =>グルテン [1] =>ナット [2] =>貝 [3] =>ラクトース )'これは(ますprint_rとダンプされる内容である) – user1986245
問題は、あります'' s_allergies''は '' s_allergies [] ''、 '' s_allergies [2] [] 'などの名前に変更する必要があります。など –