Как отключить радиокнопку, если для нее нет вопроса из базы данных? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть вопросы, на которые я могу ответить, и все, но некоторые из них доходят до F, а некоторые только до D, поэтому мой вопрос заключается в том, как отключить кнопку без вопроса и оставить ту, у которой есть вопросы.

Я не мог придумать, как решить эту проблему, поэтому я спрашиваю здесь.

$sql = "SELECT * FROM  questionlist_choice WHERE Qid='$Qid'";
   $result = mysqli_query($conn, $sql);
  if ($result->num_rows > 0) {
    $i = 0;
    $p = 1;
  while ($row = mysqli_fetch_assoc($result)) {
$vraag = $row['Vraag'];
$vraagA = $row['Vraag_keuzeA'];
$vraagB = $row['Vraag_keuzeB'];
$vraagC = $row['Vraag_keuzeC'];
$vraagD = $row['Vraag_keuzeD'];
$vraagE = $row['Vraag_keuzeE'];
$vraagF = $row['Vraag_keuzeF'];
$kikio =  "<div>
     <br><p>$p. $vraag</p>
     <input type='radio' name='q[$i]' value='A'required> $vraagA<br>
     <input type='radio' name='q[$i]' value='B'required> $vraagB<br>
     <input type='radio' name='q[$i]' value='C'required> $vraagC<br>
     <input type='radio' name='q[$i]' value='D'required> $vraagD<br>
     <input type='radio' name='q[$i]' value='E'required> $vraagE<br>
     <input type='radio' name='q[$i]' value='F'required> $vraagF<br>
 </div>";

 echo $kikio;
$i++;
$p++;
  }
}

?>    
<input value="submit" name="submit" type="submit">
</form>

Надеюсь, он будет показывать радио-кнопки только тогда, когда есть вопрос с ним.

Ответы [ 3 ]

1 голос
/ 20 сентября 2019

Вы можете отключить строку, когда результат пуст (не проверен!):

$result = mysqli_query($conn, $sql);
if ($result->num_rows > 0) {
    $i = 0;
    $p = 1;
    while ($row = mysqli_fetch_assoc($result)) {
        $vraag = $row['Vraag'];
        $form = '';
        echo "<div><br><p>$p. $vraag</p>";
        foreach(range('A','F') as $question) {
            ${'vraag'.$question} = $row['Vraag_keuze'.$question];
            $disabled = empty(${'vraag'.$question}) ? 'disabled' : '';
            $form .= "<input type='radio' name='q[$i]' value='A' required $disabled>${'vraag'.$question}<br>";
        }
        echo "$form </div>";
        $i++;
        $p++;
    }
}

?>    
<input value="submit" name="submit" type="submit">
</form>

1 голос
/ 20 сентября 2019

Не проверено, но вы можете попробовать динамически построить html, основываясь на том, пуст или нет конкретный ответ (предположительно $row['Vraag_keuzeA'] и т. Д. Являются ответами ?!)

    $sql = "SELECT * FROM  questionlist_choice WHERE Qid='$Qid'";
    $result = mysqli_query($conn, $sql);

      if( $result->num_rows > 0 ) {
        $i = 0;
        $p = 1;

        $fields=array('Vraag_keuzeA','Vraag_keuzeB','Vraag_keuzeC','Vraag_keuzeD','Vraag_keuzeE','Vraag_keuzeF');
        $answers=array('A','B','C','D','E','F');


      while ($row = mysqli_fetch_assoc($result)) {
        $vraag = $row['Vraag'];

        $html=array();
        $html[]='<div>';
        $html[]=sprintf('<br><p>%s. $vraag</p>', $p );

        foreach( $fields as $index => $field ){
            if( !empty( $row[ $field ] ) ) {
                $html[]=sprintf(
                    '<input type="radio" name="%s" value="%s" required /> %s<br />', 
                    $q[ $i ], 
                    $answers[ $index ], 
                    $row[ $field ]
                );
        }
        $html[]='</div>';

        echo implode( PHP_EOL, $html );


        $i++;
        $p++;
      }
    }
?>
<input value="submit" name="submit" type="submit">
</form>
1 голос
/ 20 сентября 2019

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

    $kikio = 'div<br><p>$p. $vraag</p>';
     if($row['vraagA']!='') $kikio .= '<input type='radio' name='q[$i]' value='A'required> $vraagA<br>'; 
     if($row['vraagB']!='') $kikio .= '<input type='radio' name='q[$i]' value='B'required> $vraagB<br>';
     ...

     $kikio .= '</div>';
echo $kikio;
...