在页面上收集用户数据的最佳方式,将其显示在同一页面上,同时保留页面的其余部分

时间:2011-04-21 14:02:00

标签: php jquery ajax

我目前正在构建一个网络应用程序,其中有一个部分,用户可以看到图表(已从图表数据库中提取)并提示回答几个问题。用户提交了他/她的输入后,我想 在同一页面上显示他/她的答案以及建议的答案。

我已经构建了大部分功能,但我不确定用于在同一页面上显示用户答案和建议答案的最佳方法是什么。现在(如下所示),我正在使用一个大的if语句来检查表单是否已经提交,如果是,则显示最后一个用户提交的答案和建议的答案。如果表单尚未提交,则会显示图表。

问题在于,一旦提交了表单(语句的else部分),用户仍应该看到图表。我想我可以通过在$ _SESSION中存储id重新显示图表并在else语句中再次将其拉出来,但这看起来很笨拙。有人可以推荐一个最好的方法吗(我愿意使用jquery或ajax,虽然我必须让自己加快速度)?

if(!isset($_POST['submit']))
    {
        // some code to determine which chart to pull

        if(mysql_num_rows($query))
        {
            while($result = mysql_fetch_array($query))
            {
                $dir = "images/"; // set directory variable

                // open the directory
                if($opendir = opendir($dir))
                {
                    // display the chart to the user

                } 
            }

            // update db table to note that user has seen this problem

        ?>
        <!-- ask for insights -->
        <form action="charts.php" method="POST">

            <input type="text" name="insight[]" placeholder="insight goes here!" />
            <input type="text" name="insight[]" placeholder="more goes here!" />
            <input type="text" name="insight[]" placeholder="don't give up yet" />
            <input type="submit" name="submit" value="Submit data" />
        </form>

        <?php   
        }
        else // throw an error if all questions have been done!
            {
                bringBacktogo($id, $p_type, $count);
            }
    }  

    else
    {

            // some code to show suggested chart insights

            // some code to pull user answers from form above and show them
    } 

1 个答案:

答案 0 :(得分:0)

试试这个jquery,然后在targetPage.php

中做所有的事情
$("#targetDiv").load("targetPage.php",$("#form").serializeArray());