10

PHP と jQuery のコーディング スタイルを変更しましたが、私の登録

$("#reg_form_company").bind("submit", function() {
    $.fancybox.showActivity();
    $.ajax({
            type     : "POST",
            cache    : false,
            url      : $(this).attr('action'),
            data     : $(this).serializeArray(),
            success  : function(data) {
                $(".printArea").empty().append(data).css('visibility','visible');
            }
    });
    return false;
});

次に、これは私のフォームです

<form id="reg_form_company" action="index.php?module=register&actionregister" method="post" >
      <input>[...]</input>
</form>

次に、「送信」ボタンをクリックしても機能しません。誰かがこの問題を解決するのを手伝ってくれると思います.cozは、$.ajaxがPOST(入力用)とGET(「アクション」形式)

必要に応じて、jQuery コード全体を変更することもできます。

#reg_form_company と fancybox を含めなくてごめんなさい

4

5 に答える 5

32

次のようなことをする必要があります: http://jsfiddle.net/xSJTs/2/

$('form').on('submit',function(e){
    e.preventDefault();
    $.ajax({
        type     : "POST",
        cache    : false,
        url      : $(this).attr('action'),
        data     : $(this).serialize(),
        success  : function(data) {
            $(".printArea").empty().append(data).css('visibility','visible');
        }
    });

});

serialize()の代わりに使用する必要がありserializeArray()ます。serializeArray()JavaScript オブジェクトをserialize()作成し、クエリ文字列を作成します。

シリアル化: http://api.jquery.com/serialize/

SerializeArray: http://api.jquery.com/serializeArray/

基本的には、フォームが送信されるまで待ってから中断します ( e.preventDefault();)。

于 2012-04-06T09:27:50.890 に答える
1

代わりにフォームを参照する必要があります$(this)

フォームにIDまたはクラスを指定します。例:

<form action="index.php?module=register&actionregister" method="post" id="MyForm">
      <input>[...]</input>
</form>

とJQueryで:

$.ajax({
        type     : "POST",
        cache    : false,
        url      : $('#MyForm').attr('action'),
        data     : $('#MyForm').serializeArray(),
        success  : function(data) {
            $(".printArea").empty().append(data).css('visibility','visible');
        }
});
于 2012-04-06T09:26:22.603 に答える