Отображение ранее выбранного значения в опции с несколькими выборами

Спасибо за прочтение.

Я использую следующий мультиселективный вариант для интересов пользователей ". Они могут выбрать одного или многих. Затем интересы хранятся в базе данных в виде строки, которая создается из массива, который поставляется ниже. Дело в том, что когда пользователь возвращается, чтобы изменить свои интересы, я хочу, чтобы ящик отображал то, что уже есть в базе данных. Значение для этого - $user-> интересы (это строка). Я не вижу, как я могу это сделать. Вы можете видеть, что я добавил $user-> интерес ниже к значению. Очевидно, это не работает. Есть идеи...?

<select name="interests[]" value="<?php echo $user->interests;?>" data-placeholder="Select your specialist interests" multiple tabindex="6">
 
 <option value="Acute critical care">Acute critical care</option>
 <option value="Allergic diseases">Allergic diseases</option>
 <option value="Asthma">Asthma</option>
 <option value="Bronchiectasis">Bronchiectasis</option>
 <option value="Cardiology">Cardiology</option>

</select>
2 ответа

Элемент select не имеет атрибута value.

Вам нужно добавить selected атрибут к каждому из который должен быть выбран по умолчанию.

Вы должны получить список значений в массиве, а затем проверить, есть ли каждый параметр в этом массиве при их выводе.


Попробуйте этот вариант.

<select name="interests[]" data-placeholder="Select your specialist interests" multiple tabindex="6">

<option value="Acute critical care" <?php="" if(strpos(="" $user-="">interests,"Acute critical care")){echo 'selected="selected"'} ?> >
Acute critical care
</option>
//Similarly for other options.
//....

</select>

licensed under cc by-sa 3.0 with attribution.