PHP问卷调查策略

PHP问卷调查策略,php,Php,我正在设计一个调查问卷,我写的代码是JS和PHP的组合。我有一页的问题,但我想在一个单独的页面上问每个问题,连续的问题应该根据用户选择的答案提问。这样做的最佳策略是什么?我是否也需要包含SQL? 最后,答案将写在一个文本文件中 我的密码是: <?php if($_POST['formSubmit'] == "Submit") { $errorMessage = ""; if(empty($_POST['name'])) { $errorMessage .= "<li>

我正在设计一个调查问卷,我写的代码是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>

问卷调查
问卷调查

请填写以下问卷: 名称


我认为您不需要使用SQL来实现这一点。您应该能够使用
$\u会话
存储以前问题的答案,并相应地调整后续页面上的问题。

您的意思是我应该为每个问题创建一个单独的文件,并使用$\u会话存储答案等等?(问题是我不想让用户看到URL中的“文件名”)@user-是的,没错。完成后(在最后一页),您可以从会话中获取答案并将其写入您的文件中。