0

私はまだマルチステージフォーム(http://jsfiddle.net/xSkgH/93/)に取り組んでおり、ajax送信を支援するために次のソリューションを組み込んでいます:

<script type="text/javascript">
$(document).ready(function() {
    $("#postData").click(function() {
        $("#last-step").hide(600);

            $("#task5_booking").submit(function() {
                $.post('resources/process2.php', function(data) {
                    $("#result").html(data);
                });
            });

        return false;
    });
});
</script>

最後のステップはうまくフェードアウトしますが、すべてのフォームフィールドの単なる配列である process2.php のコンテンツをロードする場合:

<?php
print_r($_POST);
?>

何も起こらないようです。div は空白のままです。助けていただければ幸いです。前もって感謝します。

4

3 に答える 3

3

ajax 経由でリソースを呼び出す場合は、シリアル化されたフォームも呼び出しに渡す必要があります。$("#task5_booking")したがって、あなたのフォーム要素であると仮定します

$("#task5_booking").submit(function(evt) {
      evt.preventDefault();
      $.post('resources/process2.php', { data: $("#task5_booking").serialize() }, function(data) {
            $("#result").html(data);
      });
});

フォーム送信時

  1. デフォルトのイベント (送信) を停止preventDefault()する
  2. serialize()メソッドでシリアル化されたフォームを渡して、post 呼び出しを行います( http://api.jquery.com/serialize/を参照)。

また、ジャックが指摘したように、フィドルのフォームには camperapplicationFormidがあり、ないことに注意してくださいtask5_booking

于 2012-04-17T08:54:47.597 に答える
1
$(document).ready(function() {
    $("#postData").click(function(e) {
        e.preventDefault();
        $("#last-step").hide(600);

            $("#task5_booking").submit(function() {
                $.post('resources/process2.php', $(this).serialize(), function(data) {
                    $("#result").html(data);
                });
            });
    });
});
于 2012-04-17T09:06:03.363 に答える
1

関数を削除する必要があると思いますsubmit

<script type="text/javascript">
$(document).ready(function() {
    $("#postData").click(function() {
        $("#last-step").hide(600);


        $.post('resources/process2.php', function(data) {
            $("#result").html(data);
        });

        return false;
    });
});
</script>
于 2012-04-17T08:55:02.593 に答える