Как мне контролировать порядок появления в PHP? - PullRequest
0 голосов
/ 16 апреля 2009

У меня сейчас есть настройки страницы, такие как:

PHP Variable Declarations
HTML header, then a form to submit GET query
The PHP that processes some stuff based on the GET data
a bit of JavaScript that makes a pretty graph from the retrieved, processed data

Что я хочу сделать - это показать только форму при первой загрузке страницы, а затем при вводе запроса, чтобы график отображался внизу страницы. Он использует библиотеку flot, и JS в настоящее время выглядит так:

<script id="source" language="javascript" type="text/javascript">   
$.plot($("#test"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });
</script>

Нужно ли заменить $ .plot каким-либо обработчиком событий или чем-то еще? Я неофит JS!

Спасибо!

Ответы [ 4 ]

2 голосов
/ 16 апреля 2009

Я бы лично использовал для этого php (но я мусор в JS ... так что я предвзятый ... =))

<?php

$formSubmitted = $_POST['formSubmitted'];

    if (!isset($formSubmitted)) { ?>
    <form method="post" enctype="form/multipart" action="<?php echo $_SERVER['PHP_SELF']; ?>">

    <input name="formSubmitted" id="formSubmitted" type="hidden" value="1" />

    ...

    </form>
                               <?php }

    else {

      // show the graph

         }

    ?>
1 голос
/ 16 апреля 2009

В вашем файле вы захотите иметь что-то вроде следующего:

<?php if ($someConditionalForTheForm) { ?>
<form>....</form>
<?php } else { ?>
<script id="source" language="javascript" type="text/javascript">   
$.plot($("#test"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });
</script>
<?php } ?>
0 голосов
/ 16 апреля 2009

.js (нужен jquery)

$(document).ready(function(){       
    $('#myformsubmit').click(function(){
        $.ajax({
            type: "GET",
            url: "/your_data_processing_file.php",
            data: "",
            success: function(result){
            $("#graph").html(result); 
                    /*
                     result is whatever you get from your script that handles 
                     your submited data
                     */
            }
        });
    });
});

.html

    <form id="myform">.....</form>
    <div id="graph"><!-- here i want my result appear after submit 
without reloading the page, i'm so 1337 --></div>

Чтобы быть еще более крутым, вы можете вернуть в результате данные json и позаботиться об этом через свой график js.

0 голосов
/ 16 апреля 2009

в вашем PHP, сначала выведите код формы, а затем посмотрите, была ли форма отправлена:

if (isset($_GET['your_form_parameter'])) {
    also_output_the_JS_graph;
}

Таким образом, форма будет отображаться всегда, а график - только после отправки формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...