как я могу получить результат базы данных для выделения элемента в списке выбора с помощью PHP?

#php #mysql

#php #mysql

Вопрос:

Я хотел бы выделить опцию в списке выбора на основе результата базы данных, а также аналогичным образом проверить переключатель.

Я видел много примеров, которые идут другим путем (т. Е. Отправляют выбранный пользователем параметр в БД — я сделал это, конечно, без проблем), но возможно ли сделать наоборот?

Список выбора уже создан и работает. У меня также есть 2 переключателя, только для yes и no. Опять же, выбранный переключатель отправляет результат в БД без проблем (значения равны 1 или 0).

Итак … скажем, что пользователь выбрал ‘Norfolk’ из списка опций и это хранится в БД. Я хотел бы получить это, а затем сделать ‘Norfolk’ выделенным параметром, когда он вернется в форму (скажем, для обновления своих данных)

Ответ №1:

Я думал, что это должно быть просто, и это было (как и я! 😉 ) Это сработало, поэтому я опубликую его на случай, если кто-то еще застрял на чем-то подобном…

 <option selected="<?php echo $myregion; ?>"><?php echo $myregion;?></option>
 

…и это все! Однако спасибо всем, кто помог.

Ответ №2:

Для поля выбора

 <select name=test id=test>
<option value=1 <?php if ($c["test"]=="1") {echo " selected "; } ?>>1
<option value=2 <?php if ($c["test"]=="2") {echo " selected "; } ?>>2
<option value=3 <?php if ($c["test"]=="3") {echo " selected "; } ?>>3
</select>
 

Для переключателя

     <input type="radio" name="gender" value="male"  <?php if ($c["gender"]=="male") {echo " checked "; } ?>>
<br>
    <input type="radio" name="gender" value="female"  <?php if ($c["gender"]=="female") {echo " checked "; } ?>>
 

[Альтернативное решение]: вы можете использовать следующее, чтобы установить выбранный параметр / радио, используя функции selectElement и setradio :

 <form name="formx">
<select name=test id=test>
<option value=1 >1
<option value=2 >2
<option value=3 >3
</select>
<br><br>
<input type=radio name=test2 value="A">A
<br><br>
<input type=radio name=test2 value="B">B
</form>

<script>

function selectElement(id, valueToSelect) {    
    let element = document.getElementById(id);
    element.value = valueToSelect;
}


function setradio(xname,var2) {
var radios = document.formx.elements[xname];
index=0;
while (index < radios.length) {
if (radios[index].value == var2) {
radios[index].checked=true;
}index  ;
}}


selectElement("test","2");
setradio("test2","B");




</script>
 

Комментарии:

1. Привет, Кен, большое спасибо, это отлично! -Или будет, когда я попробую это 😉 Моя единственная проблема сейчас в том, что существует много <options> … каждый из них является британским округом!

2. Ах, я так и думал, что это будет проблемой! Дело в том, что у меня есть (длинный!) Предварительно написанный список опций, и просто непрактично добавлять все эти операторы к каждому из них! Разве я не могу просто сделать это (с ‘variablefromdatabase’ в качестве возвращаемой строки) … <select name= «выбранные округа»=<?php echo $variablefrom database;> <option>… </option> …

3. Привет, пожалуйста, посмотрите «Альтернативное решение» в моем ответе