首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从表单到jquery/php数组的数据

从表单到jquery/php数组的数据
EN

Stack Overflow用户
提问于 2014-05-29 07:12:56
回答 1查看 141关注 0票数 0

我想问,如何将数据从表单中移到php或jquery中的数组中,以便在测试结束时,作为总结,查看哪些问题是正确的,哪些是不正确的。我还想从数据库中随机抽取30个问题。请帮帮忙。

index.php

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-29 09:33:56

如果要将表单中的值存储在php变量中,只需执行以下操作:

代码语言:javascript
复制
if(isset($_POST['something']))
{
    $answer = $_POST['something'];
}

其中,是表单中输入字段的名称。此代码需要在提交表单后重定向到的php页面中。在上面提到的代码中,它将重定向到同一个页面,因为表单没有操作属性。如果这个答案看起来很简单的话,很抱歉,但是,这就是你所需要做的。

编辑:要从数据库中获得30个随机问题,不需要重新处理,我想您可以尝试这样做:

代码语言:javascript
复制
$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个唯一随机数的代码。如果您想使用这些随机数从db中获取问题,可以使用mysql_result()如下:

代码语言:javascript
复制
$query="SELECT questions FROM quiz";
$query_run = mysql_query($query);
$question = mysql_result($query_run,24,'questions');

这是为了获得第24行中的问题,假设所有的问题都存储在名为quiz的列中的字符串中,该列位于名为quiz的表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23927822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档