我想问一下,如何将我的表单中的数据移动到php或jquery中的数组中,因此我可以在测验结束时作为摘要,查看哪些问题是正确的,哪些是错误的。 我还想从数据库中随机抽取30个问题。 请帮忙。
的index.php
<?php require_once 'config.php';?>
<!DOCTYPE html>
<html>
<head>
<title>Testy Kwalifikacja Wstępna kat. C, CE, D, DE OCK OLSZTYN</title>
<meta charset='utf-8'>
<link rel='stylesheet' href='css/style.css'/>
</head>
<body>
<div id="top-logo">
</div>
<div id="wrapper">
<div id="content">
<?php $response=mysql_query("select * from pytania WHERE id='2' OR id='3' OR id='1'");?>
<form method='post' id='quiz_form'>
<?php while($result=mysql_fetch_array($response)){ ?>
<div id="question_<?php echo $result['id'];?>" class='questions'>
<div class="images">
<img src="img/<? echo $result['obrazek']?>">
</div>
<div class="questions-2">
<h2 id="question_<?php echo $result['id'];?>"><?php echo $result['id'].".".$result['pytanie'];?></h2>
</div>
<div class='align'>
<input type="radio" value="1" id='radio1_<?php echo $result['id'];?>' name='<?php echo $result['id'];?>'>
<label id='ans1_<?php echo $result['id'];?>' for='1'><?php echo $result['odp_a'];?></label>
<br/>
<input type="radio" value="2" id='radio2_<?php echo $result['id'];?>' name='<?php echo $result['id'];?>'>
<label id='ans2_<?php echo $result['id'];?>' for='1'><?php echo $result['odp_b'];?></label>
<br/>
<input type="radio" value="3" id='radio3_<?php echo $result['id'];?>' name='<?php echo $result['id'];?>'>
<label id='ans3_<?php echo $result['id'];?>' for='1'><?php echo $result['odp_c'];?></label>
<br/>
<input type="radio" checked='checked' value="5" style='display:none' id='radio4_<?php echo $result['id'];?>' name='<?php echo $result['id'];?>'>
</div>
<br/>
<input type="button" id='next<?php echo $result['id'];?>' value='Next!' name='question' class='butt'/>
</div>
<?php }?>
</form>
<div id='result'>
<br/>
</div>
<div id="demo1" class="demo" style="text-align:center;font-size: 25px;">00:00:00</div>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/watch.js"></script>
<script>
$(document).ready(function(){
$('#demo1').stopwatch().stopwatch('start');
var steps = $('form').find(".questions");
var count = steps.size();
steps.each(function(i){
hider=i+2;
if (i == 0) {
$("#question_" + hider).hide();
createNextButton(i);
}
else if(count==i+1){
var step=i + 1;
//$("#next"+step).attr('type','submit');
$("#next"+step).on('click',function(){
submit();
});
}
else{
$("#question_" + hider).hide();
createNextButton(i);
}
});
function submit(){
$.ajax({
type: "POST",
url: "ajax.php",
data: $('form').serialize(),
success: function(msg) {
$("#quiz_form,#demo1").addClass("hide");
$('#result').show();
$('#result').append(msg);
}
});
}
function createNextButton(i){
var step = i + 1;
var step1 = i + 2;
$('#next'+step).on('click',function(){
$("#question_" + step).hide();
$("#question_" + step1).show();
});
}
setTimeout(function() {
submit();
}, 50000);
});
</script>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
如果你想在php变量中存储表单中的值,你可以这样做:
if(isset($_POST['something']))
{
$answer = $_POST['something'];
}
其中某事是表单中输入字段的名称。此代码需要位于您提交表单后重定向到的php页面中。在上面提到的代码中,它会重定向到同一页面,因为表单没有 action 属性。对不起,如果这个答案看起来很简单,那就是你需要做的全部。
编辑: 要从您的数据库中获得30个随机问题而不进行重复,我猜你可以试试这个:
$used = array();
$i=1;
while($i<=30)
{
$num = rand(0,99); //assuming 100 is the maximum number of questions in your db
bool already_used=false;
for($j=0;$j<sizeof($used);$j++)
{
if($num==$used[j])
{
already_used=true;
break;
}
}
if(!$already_used)
{
//get the question numbered '$num' from your db
array_push($used,$num);
i++;
}
}
这基本上是您用于生成30个唯一随机数的代码。如果您想使用这些随机数来从您的数据库中获取问题,您可以使用mysql_result()
,如:
$query="SELECT questions FROM quiz";
$query_run = mysql_query($query);
$question = mysql_result($query_run,24,'questions');
这是为了在第24行中提出问题,假设所有问题都存储为名为测验的表格中名为问题的列中的字符串。