タイトルの件で質問させてください。
フォームのセレクトボックス(MultiSelect)から選択し、その選択結果をコントローラ側に
渡したいのですが、渡されるのは選択された位置で実際に表示されている値は渡せません。
これはそういうものなのでしょうか?
それとも渡す手段があるのでしょうか?
イメージを下記に記します。
セレクトボックス
・ユーザー1
・ユーザー2(選択)
・ユーザー3(選択)
実際にコントローラ側に渡されるのは、ユーザー2、3の位置である"1,2"となる。
渡したいのは"ユーザー2、3の文字列"。
$this->request->dataで内容は確認済み。
以下にselect文のHTML文を記載します。
<?= $this->Form->input('purchaser', array('type'=>'select', 'multiple'=>'true', 'div'=>false, 'label'=>false, 'options'=> array_column($user_list, 'name'), 'value'=>$user_selected_list)); ?>
フォーム内で使用している変数は以下となります。
$user_list(ユーザー情報)
int) 1 => ['name' => 'ユーザー1', 'selected' => false, 'id' => (int) 1],
(int) 2 => [ 'name' => 'ユーザー2', 'selected' => true, 'id' => (int) 2],
(int) 4 => ['name' => 'ユーザー3', 'selected' => true,'id' => (int) 4]
$user_selected_list(選択情報)
(int) 0 => (int) 1,
(int) 1 => (int) 2
回答2件
あなたの回答
tips
プレビュー