PHP nasıl görünüm sırasını kontrol edebilirim?

4 Cevap php

Şu anda böyle bir sayfa kurulum var:

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

Ne yapmak istediğiniz sayfa ilk yüklendiğinde sadece formu göstermek zorunda olduğunu ve sorgu girildiğinde sonra, grafik sayfanın alt kısmında görünmesini. Bu flot kitaplığı kullanıyor ve JS şu anda bu gibi görünüyor:

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

Ben bazı olay işleyicisi falan $. Arsa değiştirmeniz gerekiyor mu? Ben toplam JS acemi değilim!

Teşekkürler!

4 Cevap

Ben şahsen bunun için php kullanmak istiyorum (ama ben JS de çöp değilim ... o yüzden önyargılı ... = değilim))

<?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

         }

    ?>

Sizin dosyada aşağıdaki gibi bir şey yapmak isteyecektir:

<?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 } ?>

Sizin PHP, çıkış formu kod ilk ve ardından form zaten teslim olup olmadığını görmek:

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

Bu şekilde form sadece formu ibraz ederek her zaman göstermek ve grafik olacaktır.

. Js (ihtiyaç 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>

Daha serin olması, bir sonucu olarak json veri dönmek ve grafik js aracılığıyla bu bakabilirim.