I have a form element as follows :
$form['fieldset']['select-user'] = array(
'#type' => 'select',
'#title' => t('Select a user'),
'#options' => select_user_dropdown_options(),
'#description' => t('Select a user'),
'#size' => 10,
'#attributes' => array(
'style' => 'width:600px',
'multiple' => 'true'
)
);
And in the form submit handler i am processing it as follows :
/**
* #submit callback for node_adoption_transfer_form().
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$groupId = $form_state->getValue('select-user-group');
$groupName = $form_state->getValue('group_name');
$userId = $form_state->getValue('select-user');
$groupName = empty($groupName) ? '' : $groupName;
#print_r($userId);exit;
foreach ($userId as $key => $value) {
$query = "select * from {usergroup_user_map} where user_id=$value AND group_id ='$groupId'";
if (count(db_query($query)->fetchObject()) > 0) {
continue;
} else
db_query("insert into {usergroup_user_map} (user_id,group_name,group_id) values ($value,'$groupName','$groupId')");
}
}
But when am printing the $userId
its only printing the last value , How to resolve this ?
UPDATE
my issue solved .I was using '#multiple' => 'true' instead of '#multiple' => TRUE , my bad ;) . That saved my day ..