如何在PHP中的表单向导中显示一个数据?

时间:2016-02-23 06:59:20

标签: php mysql

enter image description here

enter image description here

在Question1中的图像上应该显示第一个问题,当我点击下一个问题时它应该显示第二个问题但问题是在问题1和问题2中显示我试过的两个问题以下plz纠正我的意思我在代码中做错了.. 羽绒选民请提及原因

 <?php
      include("../view/common/head.php");
 ?>
<style>
#registration-step{margin:0;padding:0;}
#registration-step li{list-style:none; float:left;padding:5px 10px;border-top:#EEE 1px solid;border-left:#EEE 1px solid;border-right:#EEE 1px solid;}
#registration-step li.highlight{background-color:#EEE;}
#registration-form{clear:both;border:1px #EEE solid;padding:20px;}
.demoInputBox{padding: 10px;border: #F0F0F0 1px solid;border-radius: 4px;background-color: #FFF;width: 50%;}
.registration-error{color:#FF0000; padding-left:15px;}
.message {color: #00FF00;font-weight: bold;width: 100%;padding: 10;}
.btnAction{padding: 5px 10px;background-color: #09F;border: 0;color: #FFF;cursor: pointer; margin-top:15px;}
</style>
<script>

$(document).ready(function() {
    $("#next").click(function(){

            var current = $(".highlight");
            var next = $(".highlight").next("li");
            if(next.length>0) {
                $("#"+current.attr("id")+"-field").hide();
                $("#"+next.attr("id")+"-field").show();
                $("#back").show();
                $("#finish").hide();
                $(".highlight").removeClass("highlight");
                next.addClass("highlight");
                if($(".highlight").attr("id") == $("li").last().attr("id")) {
                    $("#next").hide();
                    $("#finish").show();                

            }
        }
    });
    $("#back").click(function(){ 
        var current = $(".highlight");
        var prev = $(".highlight").prev("li");
        if(prev.length>0) {
            $("#"+current.attr("id")+"-field").hide();
            $("#"+prev.attr("id")+"-field").show();
            $("#next").show();
            $("#finish").hide();
            $(".highlight").removeClass("highlight");
            prev.addClass("highlight");
            if($(".highlight").attr("id") == $("li").first().attr("id")) {
                $("#back").hide();          
            }
        }
    });
});
</script>

<?php
include('../model/functions.php');
if(!empty($_POST['course']) &&!empty($_POST['paper'])){
 $course=$_POST['course'];
 $paper=$_POST['paper'];
}
$sql="SELECT a.course_name,b.paper_name,c.set_name,d.* from courses a left outer join papers b on a.course_id=b.course_id left outer join question_sets c on b.paper_id=c.paper_id left outer join questions d on d.set_id=c.set_id where a.course_name='java' AND b.paper_id=2 AND c.set_id=3;
";
$result=$conn->query($sql);
$rowcount=$result->num_rows;
while($row=$result->fetch_assoc())
{
    $selectoutter[]=$row;
}
 foreach($selectoutter as $ques)
 {
    $questionid[]=$ques['question_id'];
    $question[]=$ques['question_text'];
    $option1[]=$ques['option_1'];
    $option2[]=$ques['option_2'];
    $option3[]=$ques['option_3'];
    $option4[]=$ques['option_4'];
 }
 ?>
 <ul id="registration-step">
<li id="account" class="highlight">Account</li>
<li id="password">Credentials</li>
</ul>

<form name="frmRegistration" id="registration-form" method="post">
 <?php
 for($i=0;$i<$rowcount;$i++)
 {

echo '<div id="'.$questionid[$i].'">';
echo '<p>'.$question[$i].'<p>';
echo '<input type="radio" name="question">'.$option1[$i].'<br>';
echo '<input type="radio" name="question">'.$option2[$i].'<br>';
echo '<input type="radio" name="question">'.$option3[$i].'<br>';
echo '<input type="radio" name="question">'.$option4[$i].'<br>';
echo '</div>';
echo '<br/>';
 }
?>
<div>
        <input class="btnAction" type="button" name="back" id="back" value="Back" style="display:none;">
        <input class="btnAction" type="button" name="next" id="next" value="Next" >
        <input class="btnAction" type="submit" name="finish" id="finish" value="Finish" style="display:none;">
    </div>

</form>

</html>

2 个答案:

答案 0 :(得分:1)

最好对每个新问题使用AJAX调用,如下面的

function getQuestion(type, options){
    if(type == 0){
        data = {type:"getQuestion"}
    } else if(type == 1){
        data = {type: "submitAndGetQuestion", questionID = option['ID'], questionAnswer = option['answer']}
    } else if(type == 2){
        data = {type: "submit", questionID = option['ID'], questionAnswer = option['answer']}
    }
     $.ajax({    
         type: 'post',
         url: 'ajax.php',
         dataType: 'json',
         data: {type:"question"}
         success: function(response) {
            //populate response in forms
            //print questionID (will be usefull when submit answer)
         },
         error: function (e) {
            console.log(e)
          },
      });
}

首先致电getQuestion(0,null);以下每次提交电话都会被调用

 $("#submit").live('click',function() {
    // get Question ID 
    // get answer
    var options ={};
    var options['ID'] = questionID;
    var options['answer'] = questionAnswer;
    getQuestion(1,options);
});
终于当时间过了简单的电话时     如果您要删除表单或重定向,请致电getQuestion(2,null);

在ajax.php中

<?php 
if($_POST['type'] == "getQuestion"){
    // get one question from table
    $result = select_tables($query);// LIMIT 1 to get one question
    echo json_encode($result);
} else if($_POST['type'] == "submitAndGetQuestion"){
    //store last question answer into db 
    $id = $_POST['questionID'];
    $answer = $_POST['questionAnswer'];
    updateQuestionForUser();
    //then again get a question
    $result = select_tables($query);// LIMIT 1 to get one question
    echo json_encode($result);
}

答案 1 :(得分:1)

得到了正确的,这是正常的

 <?php
      include("../view/common/head.php");
 ?>
<style>
#registration-step{margin:0;padding:0;}
#registration-step li{list-style:none; float:left;padding:5px 10px;border-top:#EEE 1px solid;border-left:#EEE 1px solid;border-right:#EEE 1px solid;}
#registration-step li.highlight{background-color:#EEE;}
#registration-form{clear:both;border:1px #EEE solid;padding:20px;}
.demoInputBox{padding: 10px;border: #F0F0F0 1px solid;border-radius: 4px;background-color: #FFF;width: 50%;}
.registration-error{color:#FF0000; padding-left:15px;}
.message {color: #00FF00;font-weight: bold;width: 100%;padding: 10;}
.btnAction{padding: 5px 10px;background-color: #09F;border: 0;color: #FFF;cursor: pointer; margin-top:15px;}
</style>
<script>

$(document).ready(function() {
    $("#next").click(function(){

            var current = $(".highlight");
            var next = $(".highlight").next("li");
            if(next.length>0) {
                $("#"+current.attr("id")+"-field").hide();
                $("#"+next.attr("id")+"-field").show();
                $("#back").show();
                $("#finish").hide();
                $(".highlight").removeClass("highlight");
                next.addClass("highlight");
                if($(".highlight").attr("id") == $("li").last().attr("id")) {
                    $("#next").hide();
                    $("#finish").show();            

            }
        }
    });
    $("#back").click(function(){ 
        var current = $(".highlight");
        var prev = $(".highlight").prev("li");
        if(prev.length>0) {
            $("#"+current.attr("id")+"-field").hide();
            $("#"+prev.attr("id")+"-field").show();
            $("#next").show();
            $("#finish").hide();
            $(".highlight").removeClass("highlight");
            prev.addClass("highlight");
            if($(".highlight").attr("id") == $("li").first().attr("id")) {
                $("#back").hide();          
            }
        }
    });
});
</script>

<?php
include('../model/functions.php');
if(!empty($_POST['course']) &&!empty($_POST['paper'])){
 $course=$_POST['course'];
 $paper=$_POST['paper'];
}
$sql="SELECT a.course_name,b.paper_name,c.set_name,d.* from courses a left outer join papers b on a.course_id=b.course_id left outer join question_sets c on b.paper_id=c.paper_id left outer join questions d on d.set_id=c.set_id where a.course_name='java' AND b.paper_id=2 AND c.set_id=3;
";
$result=$conn->query($sql);
$rowcount=$result->num_rows;
while($row=$result->fetch_assoc())
{
    $selectoutter[]=$row;
}
 foreach($selectoutter as $ques)
 {
    $questionid[]=$ques['question_id'];
    $question[]=$ques['question_text'];
    $option1[]=$ques['option_1'];
    $option2[]=$ques['option_2'];
    $option3[]=$ques['option_3'];
    $option4[]=$ques['option_4'];
 }
 ?>
 <ul id="registration-step">
 <?php
  echo '<li id="'.$questionid[0].'" class="highlight">Question1</li>';
?> 

 <?php
 $sno=2;
 for($i=1;$i<$rowcount;$i++)

echo '<li id="'.$questionid[$i].'">Question'.$sno++.'</li>';
?>
</ul>

<form name="frmRegistration" id="registration-form" method="post">

<?php
echo '<div id="'.$questionid[0].'-field">';
echo '<p>'.$question[0].'<p>';
echo '<input type="radio" name="question">'.$option1[0].'<br>';
echo '<input type="radio" name="question">'.$option2[0].'<br>';
echo '<input type="radio" name="question">'.$option3[0].'<br>';
echo '<input type="radio" name="question">'.$option4[0].'<br>';
?>
</div>
 <?php
 for($i=1;$i<$rowcount;$i++)
 {
echo '<div id="'.$questionid[$i].'-field" style="display:none;">';
echo '<p>'.$question[$i].'<p>';
echo '<input type="radio" name="question">'.$option1[$i].'<br>';
echo '<input type="radio" name="question">'.$option2[$i].'<br>';
echo '<input type="radio" name="question">'.$option3[$i].'<br>';
echo '<input type="radio" name="question">'.$option4[$i].'<br>';
echo '</div>';
 }
?>
<div>
        <input class="btnAction" type="button" name="back" id="back" value="Back" style="display:none;">
        <input class="btnAction" type="button" name="next" id="next" value="Next" >
        <input class="btnAction" type="submit" name="finish" id="finish" value="Finish" style="display:none;">
    </div>

</form>

</html>