0

1 つの php ファイルに 2 つのフォームがあります。Form1 はユーザーから入力を取得し、クエリを Mysql データベースに渡し、データベースからデータを取得し、Form2 に入力する必要があります。

最初は Form2 は非表示であり、ユーザーが Form1 の入力を選択して [送信] をクリックすると、フォームの値がフォーム POST を介して php 部分に渡され、mysql フェッチが実行され、値とともに Form2 が表示されます。

Form1の入力ボタン:

  <input id="buttonProductionSummary" class="buttonProductionSummary" type="submit" value="Submit" />

フォームの値を POST するコード:

$date=$_POST['datepicker'];
$machine = $_POST['selectMachine'];
$user = $_POST['selectUser'];
$shift=$_POST['selectShift'];
$start_time_query = mysql_query("select time from rpt_shift_log where ((date='$date' and shift_def='$shift' and event_type='$even_type_up_id') and (machine='$machine' and employee='$user'))");


while($start_time_Row = mysql_fetch_assoc($start_time_query)) 
{
    $start_time = $start_time_Row['time'];      
}

私はこのようにForm2のテキストボックスで計算された値を使用しています。

  <input id="start_time_text" class="start_time_text" type="text" name="start_time_text" value="<?php echo $start_time?>">

しかし、今はスクリプトをブロックして、ボタンのクリック時に Form2 をロードしています。ボタンのクリックでフォームをロードする JQuery コード:

<script type="text/javascript">
    $(document).ready(function(){

        $("#buttonProductionSummary").click(function(e) {

            $("#productionForm").show();

            e.preventDefault();
        });
    });
</script>

問題は、JQuery スクリプトが実行される場合、フォーム POST が発生しないことです。POST が発生する場合は、スクリプトにコメントする必要があります。

まず POST を実行してデータベースからデータを取得し、取得したデータを Form2 に表示する方法を教えてください。

誰かが私を助けることができますか?

4

1 に答える 1

1

何をするか知ってe.preventDefault();いますか?デフォルトのアクションが発火するのを止めます!したがって、フォームは送信されません。ページをポストバックしたくない場合は、サーバーに対してAjax 呼び出しを行い、2 番目のフォームのデータをフェッチする必要があります。

    $("#buttonProductionSummary").click(function(e) {
        $.post("test.php", $("#testform").serialize(), function(data) {
            //do something with the data returned from the server.
            $("#productionForm").show();
        });
        e.preventDefault();
    });
于 2012-12-17T22:51:59.393 に答える