【问题标题】:How to disable a radio-button when there is no question for it from the database?当数据库没有问题时如何禁用单选按钮?
【发布时间】:2019-09-20 15:49:52
【问题描述】:

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

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

【问题讨论】:

  • 为什么不从一个空列表开始,为从数据库收到的每个问题添加一个单选按钮,而不是一个固定的单选按钮列表?
  • @TommyN 因为它适用于多项调查,然后我必须为每个新调查更改它

标签: php mysql radio-button disable


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-30
        • 2021-09-12
        • 2018-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多