PHP问卷策略

时间:2012-03-20 13:08:00

标签: php

我正在设计调查问卷,我编写的代码是JS和PHP的组合。我在一个页面中有问题,但我想在单独的页面上询问每个问题,并且应根据用户选择的答案询问连续的问题。这样做的最佳策略是什么?我是否还需要包含SQL? 最后答案将写在文本文件中 我的代码是:

<?php
if($_POST['formSubmit'] == "Submit")
{
$errorMessage = "";

if(empty($_POST['name']))
{
    $errorMessage .= "<li>You forgot to enter your name!</li>";
}

$varName = $_POST['name'];
$varLand1 = $_POST['landscape1']; $varLand2 = $_POST['landscape2'];
$varCom = $_POST['comment'];
$varAppx = $_POST['appx'];  
$clim = $_POST['landscape'];
$varMech = $_POST['mechanism'];
$varMechoth = $_POST['mech'];

if(empty($errorMessage)) 
{
    $fs = fopen("$varName.txt" ,"a+");
    fwrite($fs,$varName . "\n" . $varLand1 . ' ' .$varLand2 . "\n" . $clim .    "\n" . $varAppx . "\n" . $varCom . "\n" . $varMech .$varMechoth);
    fclose($fs);

    header("Location: t-y.html");
    exit;
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<script scr="jss.js" type="text/javascript"></script>
    <title>Questionnaire</title>
</head>
<body>
<FONT FACE="Times New RomanPS">
        <H1>Questionnaire</H1>
        <P>Please fill out this questionnaire:
             <?php
            if(!empty($errorMessage)) 
            {
                echo("<p>There was an error with your form:</p>\n");
                echo("<ul>" . $errorMessage . "</ul>\n");
            } 
         ?>
<form action="index.php" method="post">

    <p>
    Name<br>
    <input type="text" name="name" maxlength="50" value="<?=$varName;?>" />
    </p>
    <ul>
    <p> 1 - Q1?
    <p><input type="checkbox" name="landscape1" value="urban"> Urban<br>
    <p><input type="checkbox" name="landscape2" value="non-urban"> non-Urban<br>
    <p> 2 - Q2?<br>
    <input type="radio" name="landscape" value="Dry"> Dry<br>
    <input type="radio" name="landscape" value="Tropical"> Tropical<br>
    <input type="radio" name="landscape" value="Moderate"> Moderate<br>
    <input type="radio" name="landscape" value="Continental"> Continental<br>
    <input type="radio" name="landscape" value="Polar"> Polar<br>
    <p> 3 - Q3? <br>
    <input type="radio" id="mecha" name="mechanism" value="sub"     onclick="hideTextBox1()"/> Subsidence<br>
    <input type="radio" id="mecha" name="mechanism" value="earth" onclick="hideTextBox1()"/> Earthquake<br>
    <input type="radio" id="mecha" name="mechanism" value="volc" onclick="hideTextBox1()"/> Volcanic<br>
    <input type="radio" id="mecha" name="mechanism" value="<?=$varMech;?>" onclick="displayTextBox1()"/> other<br>
    <div id="otherTextBox1" style="display:none;visibility:hidden;">
    <input type="text" name="mech" maxlength="20" value="<?=$varMech;?>">
    </div>

    <p> 4 - Q3?<br>

    <input name="choice" id="choice4" type="radio" value="four" onclick="hideTextBox()"/><label for="choice4"> No </label><br>
            <input name="choice" id="choice5" type="radio" value="other" onclick="displayTextBox()"/><label for="choice5"> Yes </label>
    <br/>
    <div id="otherTextBox" style="display:none;visibility:hidden;">
    [mm/yr]<br><input type="text" name="appx" maxlength="3" value="<?=$varAppx;?>">
    </div>
    <br/>
    <p> 5 - Q4

    <p> 6 - Q5

    <p> 7 - Q6


    <p>
    Comments:<br>
    <textarea type="text" name="comment" cols=48 rows=4 maxlength="1000" value=" <?=$varComment;?>"></textarea>
    </p>                
    <p><input type="reset"> <input type="submit" name="formSubmit"  value="Submit" />
    </ul>
       <script>
    function displayTextBox()
    {
        var objElement = document.getElementById('otherTextBox');
        otherTextBox.style.display = 'block';
        otherTextBox.style.visibility = 'visible';
    }

    function hideTextBox()
    {
        var objElement = document.getElementById('otherTextBox');
        otherTextBox.style.display = 'none';
        otherTextBox.style.visibility = 'hidden';
    }

    function validate()
    {
        var arrElements = document.getElementsByName('choice');
        var objElement;
        var boolContinue = false;
        var objOtherText;

        for(var i=0, _length=arrElements.length; i<_length; i++)
        {
            objElement = arrElements[i];

            if(objElement.checked)
            {
                if(objElement.id == 'choice5')
                {
                    objOtherText = document.getElementById('othertext');

                    if(strTrim(objOtherText.value).length>0)
                    {
                        boolContinue = true;
                        break;
                    }
                }
                else
                {
                    boolContinue = true;
                    break;
                }
            }
        }
        for(var i=0, _length=arrElements1.length; i<_length; i++)
        {
            objElement1 = arrElements1[i];

            if(objElement1.checked)
            {
                if(objElement1.id == 'mecha')
                {
                    objOtherText1 = document.getElementById('othertext');

                    if(strTrim(objOtherText1.value).length>0)
                    {
                        boolContinue = true;
                        break;
                    }
                }
                else
                {
                    boolContinue = true;
                    break;
                }
            }
        }
        if(boolContinue)
        {
            alert('Continue, user completed the information.')
        }
        else
        {
            alert('Ask user to complete the data.')
        }
    }

function displayTextBox1()
    {
    var objElement1 = document.getElementById('otherTextBox1');
        otherTextBox1.style.display = 'block';
        otherTextBox1.style.visibility = 'visible';
    }

    function hideTextBox1()
    {
        var objElement1 = document.getElementById('otherTextBox1');
        otherTextBox1.style.display = 'none';
        otherTextBox1.style.visibility = 'hidden';
    }

    function validate1()
    {
        var arrElements1 = document.getElementsByName('mechanism');
        var objElement1;
        var boolContinue = false;
        var objotherText1;

        for(var i=0, _length=arrElements1.length; i<_length; i++)
        {
            objElement1 = arrElements1[i];

            if(objElement1.checked)
            {
                if(objElement1.id == 'mecha')
                {
                    objOtherText1 = document.getElementById('othertext');

                    if(strTrim(objOtherText1.value).length>0)
                    {
                        boolContinue = true;
                        break;
                    }
                }
                else
                {
                    boolContinue = true;
                    break;
                }
            }
        }
        if(boolContinue)
        {
            alert('Continue, user completed the information.')
        }
        else<?=$varMech;?>
        {
            alert('Ask user to complete the data.')
        }
    }       
    /**
     * Removes all white space characters from the string.
     * 
     * @param: {String} String to trim.
     * 
     * @return {String} Trimed string.
    */
    function strTrim(strTrim) 
    {
        return strTrim.replace(/^\s+|\s+$/g, '');
    }
    </script>
    </form>
</FONT> 
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我认为您不需要使用SQL来执行此操作。您应该可以使用$_SESSION存储以前问题的答案,并相应地调整以下页面中的问题。