首页 > 解决方案 > 为页面设置特定的持续时间

问题描述

我想指定表单显示的持续时间。假设有一个值为 的变量x=(10),每当我调用此页面时,计时器应基于当前时间,并且表单应显示 10 分钟,然后自动发送表单。

<?php 
 include 'db_conn.php';
 if (isset($_GET['id'])) {
  $var=$_GET['id'];
$query="SELECT * FROM addquiz WHERE quz_id='$var' ";
$db=mysqli_query($conn,$query);
$res=mysqli_fetch_array($db);
$noquestions=$res['noquestion'];
$quiz=$res['title'];
}?>

<div class="container">
<form  method="POST" class="form-horizontal" >

<div style="margin-left: 30%;"><b>Your Quiz: &nbsp; &nbsp; <?php echo $quiz;?></b> &nbsp; &nbsp;  &nbsp; 
<input type="text" name="user_name" placeholder="Enter Your Name" style="height: 30px; width: 30%;"></div>
<div class="row">
<div class="col-md-12">
<div class="panel" style="margin:5%">

<?php 
$count=1;
$que="SELECT * FROM addques WHERE quz_id='$var'";
$dbd=mysqli_query($conn,$que);
    while ($cmd=mysqli_fetch_array($dbd)) {

            $quest=$cmd['qusname'];
            $ans_id=$cmd['ans_id'];
            $opt1=$cmd['qpta'];
            $opt2=$cmd['optb'];
            $opt3=$cmd['optc'];
            $opt4=$cmd['optd'];
            $answ=$cmd['answer'];?>
<b>Question &nbsp; <?php echo $count++;?>&nbsp;:<br><?php echo $quest;?></b><br><br>
<fieldset>
<input type="hidden" name="ansid[]" value="<?php echo $ans_id; ?>">
<input type="checkbox" name="ans[]" value="1"><?php echo $opt1;?><br><br>
<input type="checkbox" name="ans[]" value="2"><?php echo $opt2;?><br><br>
<input type="checkbox" name="ans[]" value="3"><?php echo $opt3;?><br><br>
<input type="checkbox" name="ans[]" value="4"><?php echo $opt4?><br><br><br>
</fieldset>
<?php } ?>
<button type="submit" name="submit" class="btn btn-primary">Submit</button>
</form>
<div class="button" style="margin-left: 60%;"> <a href="result.php?name=<?php echo $_POST['user_name'];?>"  class="btn btn-info">View Result </a></div>
</div>
</div>
</div> 
<?php
$i=0;
if (isset($_POST['submit'])) {
    $name=$_POST['user_name'];
while ( $i<$noquestions  ) { 
$query="INSERT INTO `result`(  `quz_id`, `ans_id`, `answer`,`user_name`) VALUES('";
$query.=$var .  "', '"; 
$query.=$_POST['ansid'][$i] .  "', '"; 
$query.=$_POST['ans'][$i] .   "', '";
$query.=$name .   "' )";


$db=mysqli_query($conn,$query);
$i++;
}
}
?>

标签: php

解决方案


这取决于您要达到的目标。

正如您所说的“在每次访问页面时”,它可以使用 javascript 来完成:

window.onload = function () {
    window.setTimeout(function () {
        document.form.submit();
    }, 5000);
};

此外,您可以从您的 php 变量中设置超时,就像上面的评论所说的那样,您可以使用 php 在服务器端验证所花费的时间,以确保没有人在作弊。


推荐阅读