Предварительно заполнить много групп переключателей из базы данных - PullRequest
0 голосов
/ 24 января 2019

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

HTML

<div class="question">
  <input type="radio" name="q1" value="A" <?php echo $checkedA ?>>
  <input type="radio" name="q1" value="B" <?php echo $checkedB ?>>
  <input type="radio" name="q1" value="C" <?php echo $checkedC ?>>
</div>
<div class="question">
  <input type="radio" name="q2" value="A" <?php echo $checkedA ?>>
  <input type="radio" name="q2" value="B" <?php echo $checkedB ?>>
  <input type="radio" name="q2" value="C" <?php echo $checkedC ?>>
</div>
<div class="question">
  <input type="radio" name="q3" value="A" <?php echo $checkedA ?>>
  <input type="radio" name="q3" value="B" <?php echo $checkedB ?>>
  <input type="radio" name="q3" value="C" <?php echo $checkedC ?>>
</div>
<!-- etc till let's say 30 question -->

PHP

$query="SELECT * FROM `quiz` WHERE email='$email'";
$result=mysqli_query($link,$query);
$data=mysqli_fetch_assoc($result);
for($i=1; $i<=30; $i++){
  switch($data[${"answer".$i}]{
   case "A" : $checkedA="checked"; break;
   case "B" : $checkedB="checked"; break;
   case "C" : $checkedC="checked"; break;
  }
}

Затем,как сделать так, чтобы q1, соответствующий $ data ['answer1'], проверял, заполнен ли он данными из базы данных и т. д.?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Используя предоставленный вами код, жизненно важно получить данные из базы данных, а затем отобразить результат в html, не усложняя ситуацию. Чтобы предварительно заполнить ваши радиокнопки, вам необходимо иметь следующее:

PHP

$query="SELECT * FROM `quiz` WHERE email='$email'";
$result=mysqli_query($link,$query);
$data=mysqli_fetch_assoc($result);

HTML

<div class="question">
  <input type="radio" name="q1" value="A" <?php echo ($data['q1'] == 'A')? 'checked' : '';  ?>>
  <input type="radio" name="q1" value="B" <?php echo ($data['q1'] == 'B')? 'checked' : '';  ?>>>
  <input type="radio" name="q1" value="C" <?php echo ($data['q1'] == 'C')? 'checked' : '';  ?>>
</div>
<div class="question">
  <input type="radio" name="q2" value="A" <?php echo ($data['q2'] == 'A')? 'checked' : '';  ?>>
  <input type="radio" name="q2" value="B" <?php echo ($data['q2'] == 'B')? 'checked' : '';  ?>>
  <input type="radio" name="q2" value="C" <?php echo ($data['q2'] == 'C')? 'checked' : '';  ?>>
</div>
<div class="question">
  <input type="radio" name="q3" value="A" <?php echo ($data['q3'] == 'A')? 'checked' : '';  ?>>
  <input type="radio" name="q3" value="B" <?php echo ($data['q3'] == 'B')? 'checked' : '';  ?>>
  <input type="radio" name="q3" value="C" <?php echo ($data['q3'] == 'C')? 'checked' : '';  ?>>
</div>

С этим фрагментом кода он устанавливает флажок в зависимости от значения, поступающего из базы данных, и отображает его на экране.

0 голосов
/ 24 января 2019

Пример содержит ровно 3 переменные для проверки ($checkedA, $checkedB, $checkedC).Чтобы иметь 3 переменных на вопрос , потребуется коллекция"чеков".Если у вас есть n вопросов, ваша коллекция нуждается в n участниках.И каждому из этих членов нужны 3 члена, представляющих, отмечен ли ответ, по одному для каждой опции.

Например: если ответом на q1 является A, то $checked['q1'] = ['A'=> "checked",'B'=>"",'C'=>""].

Inphp, инициализируйте $checked член для каждого вопроса, как описано выше.Затем измените switch, чтобы обновить соответствующий элемент.[Причина инициализации этого способа заключается в том, что 1) все должны иметь значение в html и 2) checked является логическим атрибутом]

html будет отображать $checked[q#]['A'] $checked[q#]['B'] и $checked[q#]['C'] соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...