我仍然是开发Web App的新手。 我已经成功地用php设计了一个在线考试Web应用程序。但是我一直在想,我如何制作一组框,以帮助向用户指示他回答的问题以及用户没有回答的问题。这些框也可以用于浏览Web应用程序上的一系列问题 A web app with eah question status
我的解释的一个简单示例是上图的圆圈部分。 我非常想知道如何使界面的一部分成为可能,然后如何使其成为所有问题的状态。 我使用以下代码查询问题的状态
<?
$sql= "SELECT * FROM questions order by rand() LIMIT 20 ";
$_SESSION['questions'] = array();
$i=0;
foreach ($db_con->query($sql) as $rows) {
++$i;
$_SESSION['questions'][$i]=0;
echo "<span id='s". $i ."'>". $i ."</span> ";
}?>
<tr>
<td coLspan=”2”>
<h3>Question <?php $qnum=$rows['quesNo']; echo $i ?>: <label class="rchk" for="<?php echo $i ?>"> <?php echo $rows['ques']; ?> </label></h3> </td>
</tr>
<?php
$sqla= "SELECT * FROM answers where quesNo='$qnum'order by rand()";
foreach ($db_con->query($sqla) as $rowsa) {
?>
<tr>
<td>
<input type="radio" name="<?php echo $i ?>" id="<?php echo $i ?>" class="rchk" onclick='anstatus()' value="<?php echo $rowsa['ans_id']; ?>"/> <?php echo $rowsa['ans']; ?>
</td>
</tr>
上面的代码将为可用问题的数量生成跨度,对于每个已回答的问题,我希望该问题编号的标签将颜色更改为红色。所以我尝试下面的Jquery代码
function anstatus(){
// #qcount is an hidden tag to keep the numbers of questions
var counter = $('#qcount').val();
j=1;
while (j<=counter){
if( $("input[name='"+j+"']:checked")){
// $(this).css("color", "red");
$('#s'+j+'').css("color", "red");
}else {
$('#s'+j+'').css("color", "blue");
}
j++;
}
}
尝试while循环后。我尝试了一个for循环。但是面临的问题是,当回答一个问题而不是仅回答问题时,所有标签的颜色都会改变。 请帮帮我
答案 0 :(得分:0)
我的第一个想法是使用$ _SESSION数组。当用户加载测验时,设置:
$_SESSION['questions'] = array(0,0,0,0,0);
然后,当用户回答问题时,将数组中的相应元素设置为1(请记住,第一个问题是数字0,第二个问题是数字1,依此类推)。 例如,如果用户回答问题3:
$_SESSION['questions'][2] = 1;
这样,您可以使用循环和数组函数来处理数据。
答案 1 :(得分:0)
我使用以下方法解决
首先,我使用以下代码创建了span标签
<?php
$sql= "SELECT * FROM questions order by rand() LIMIT 20 ";
$_SESSION['questions'] = array();
$i=0;
foreach ($db_con->query($sql) as $rows) {
++$i;
$_SESSION['questions'][$i]=0;
echo "<span class='border' id='s". $i ."' syle='color:white'>". $i ."</span> ";
}
我为问题列表输入了以下代码
<tr>
<td coLspan=”2”>
<h3>
Question <?php $qnum=$rows['quesNo']; echo $i ?>:
<label class="rchk" for="<?php echo $i ?>">
<?php echo $rows['ques']; ?>
</label>
</h3></td>
</tr>
<?php
$sqla= "SELECT * FROM answers where quesNo='$qnum'order by rand()";
foreach ($db_con->query($sqla) as $rowsa) {
?>
<tr>
<td>
<input type="radio" name="<?php echo $i ?>" d="<?php echo $i ?>" id="<?php echo $i ?>" class="rchk" value="<?php echo $rowsa['ans_id']; ?>"/> <?php echo $rowsa['ans']; ?>
</td>
</tr>
第三,然后添加一个外部脚本,并使用html标记将其添加到文档中。 脚本的内容如下
$(function() {
$(".rchk").click(function(){
var id = $(this).attr("d");
if( $("input[name='"+id+"']:checked")){
$('#s'+id+'').css("color", "red");
};
});
});