mysql — Выбор правильного переключателя в PHP из запроса SQL

Я работаю над небольшим количеством кода для редактирования данных из базы данных. На оригинальной форме (которую я имитирую) есть группа переключателей с 6 вариантами для дней:

 <label for="arrival">When will you arrive?</label><br />
<input type="radio" id="pre" name="arrival" value="pre"/>Pre-KG<br />
<input type="radio" id="wed" name="arrival" value="wed"/>Wednesday<br />
<input type="radio" id="thu" name="arrival" value="thu"/>Thursday<br />
<input type="radio" id="fri" name="arrival" value="fri"/>Friday<br />
<input type="radio" id="sat" name="arrival" value="sat"/>Saturday<br />
<input type="radio" id="sun" name="arrival" value="sun"/>Sunday<br />

Я положил значение в базу данных после отправки формы. Теперь я вызываю данные из базы данных и хочу выбрать правильный переключатель. Есть предложения по этому поводу? Я не могу найти это, ища …

значения поступают из запроса sql в мою базу данных, используя $ row [«прибытие»] со значением одного из значений выше …

Ранее для варианта да / нет я использовал …

if ($row["costyn"]==1){
echo '<input type="radio" name="costyn" value="1" checked>Yes<br>';
echo '<input type="radio" name="costyn" value="0">No<br>';
} else if ($row["costyn"]==0) {
echo '<input type="radio" name="costyn" value="1" >Yes<br>';
echo '<input type="radio" name="costyn" value="0" checked>No<br>';
}

Должен быть более чистый путь.

1

Решение

В таком случае что-то вроде этого может сделать работу:

<label for="arrival">When will you arrive?</label><br />
<?
$row["costyn"] = 4; // value from database

$radio_keys= array('pre', 'wed', 'thu', 'fri', 'sat', 'sun');
$radio_values = array('Pre-KG', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');

foreach ($radio_keys as $key => $value) {
echo '<input type="radio" name="arrival" value="'.$value.'" '.(($key+1)==$row["costyn"]?'checked':'').'/>'.$radio_values[$key].'<br />';
}
//ommited the ID, if you need it for JS/CSS reference you shall make it unique or use name/class for whole group.
?>
2

Другие решения

Ваш PHP

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

скажем, у вас есть как «предварительно»

$radio = "pre";

затем

$checked[$radio] = "checked";

Ваш HTML

<label for="arrival">When will you arrive?</label><br />
<input type="radio" id="arrival1" name="arrival" value="pre" <?=(isset($checked['pre']))?$checked['pre']:"";>/>Pre-KG<br />
<input type="radio" id="arrival2" name="arrival" value="wed" <?=(isset($checked['wed']))?$checked['pre']:"";>/>Wednesday<br />
<input type="radio" id="arrival3" name="arrival" value="thu" <?=(isset($checked['thu']))?$checked['pre']:"";>/>Thursday<br />
<input type="radio" id="arrival4" name="arrival" value="fri" <?=(isset($checked['fri']))?$checked['pre']:"";>/>Friday<br />
<input type="radio" id="arrival5" name="arrival" value="sat" <?=(isset($checked['sat']))?$checked['pre']:"";>/>Saturday<br />
<input type="radio" id="arrival6" name="arrival" value="sun" <?=(isset($checked['sun']))?$checked['pre']:"";>/>Sunday<br />
0

По вопросам рекламы [email protected]