当数据库没有问题时如何禁用单选按钮?
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>
我有一些我可以回答的问题,但其中一些问题会上升到 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>