当数据库没有问题时如何禁用单选按钮?

How to disable a radio-button when there is no question for it from the database?

我有一些我可以回答的问题,但其中一些问题会上升到 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>

我希望它只会在有问题时显示单选按钮。

您可以在输入广告字符串之前检查值为空: 示例:

    $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;

您可以在结果为空时禁用该行(未测试!):

$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>

未测试,但您可以尝试根据特定答案是否为空或否动态构建 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>