Лучший способ собрать пользовательские данные на странице, отображать их на той же странице, сохраняя остальную часть страницы - PullRequest
0 голосов
/ 21 апреля 2011

В настоящее время я создаю веб-приложение, в котором есть один раздел, в котором пользователь видит диаграмму (которая была извлечена из базы данных диаграмм) и получает ответ на несколько вопросов. После того, как пользователь отправил свой вклад, я бы хотел отобразить его / ее ответы плюс предлагаемые ответы на той же странице.

Я уже собрал большую часть функциональных возможностей, но не уверен, какой метод лучший можно использовать для отображения ответов пользователей и предлагаемых ответов на одной странице. Прямо сейчас (показано ниже) я использую большой оператор if, который проверяет, была ли отправлена ​​форма, и если да, показывает ответы последнего отправленного пользователя и предложенные ответы. Если форма не была отправлена, отображается диаграмма.

Проблема в том, что после отправки формы (остальная часть инструкции) пользователь все равно должен увидеть диаграмму. Я думаю, что я мог бы заново отобразить диаграмму, сохранив идентификатор в $ _SESSION и снова вытянуть его в операторе 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 голосов
/ 21 апреля 2011

попробуйте этот jquery и выполните все действия в targetPage.php

$("#targetDiv").load("targetPage.php",$("#form").serializeArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...