フォームを生成しました。多くのフィールドが複数選択されています。値は foreach から生成されます (必要な形式のため)。
echo '<select name="data[formdata]['.$question['PrPageQuestion']['ID'].']" id="formdata'.$question['PrPageQuestion']['ID'].'" multiple="multiple">';
foreach($contacts as $contact):
echo '<option value="'.$contact['PrDataContact']['ID'].'">'.$contact['PrDataContact']['Name'].' ('.$contact['PrDataContact']['Email'].')</option>';
endforeach;
echo '</select>';
ただし、複数を選択してフォームを送信すると、デバッグを実行すると、期待どおりの文字列ではなく、1 つの値のみが渡されます。
HTML出力は次のとおりです。
<select name="data[formdata][2]" id="formdata2" multiple="multiple">
<option value="13">A Contact (a.contact@email.com)</option>
<option value="14">A. Nother-Contact (a.n.contact@email.com)</option>
<option value="15">A. New. Contact (anc@email.com)</option>
<option value="17">New Conti (new@conti.com)</option>
</select>
var_dump の出力は次のとおりです。
array(2) {
["_method"]=> string(4)
"POST" ["data"]=> array(1) {
["formdata"]=> array(8) {
//other data was here
[1]=> string(1) "1"
[2]=> string(2) "15"
[3]=> string(1) "4"
[4]=> string(0) ""
}
}
}