2011-02-03 13 views
0

以下のスクリプトがあります。データをPOSTしてデータベースに挿入しようとしていますが、jQueryは正常に実行されますが、何もポストしません。アクションは正しく機能しています。なぜなら、スクリプトなしでデータをポストすると、データベースは正常にエラーが発生しないので、jquery関数は何もポストしていないようです。誰かが助けてくれますか?投稿されたデータはjQueryで送信されましたsubmit()

$('#form').live('submit',function(){ 
    $('#form').fadeOut('slow'); 
    $('#div').append("<h2>submittes</h2>"); 
    return false; 
    }); 


<form id="form" method="post" action="execute.php" name="form"> 
<textarea id="text" name="update"></textarea> 
<br> 
<input type="submit" value="update" id="update-submit"> 
</form> 

EDIT:

$('#form').live('submit',function(){ 
var updateTextArea = $('#textarea').val(); 
$.ajax({ 
    type: "POST", 
    url: "execute.php", 
    data: updateTextArea, 
    success: function() { 
    $('#form').fadeOut('slow'); 
    $('#div').append("<h2>updated</h2>"); 
    } 
    }); 
    return false; 
    }); 

これは私がAJAXのための持っているものですが、私はまだ任意の成功を持っていないです。

答えて

2

あなたのjavascriptにはAJAX呼び出しがありません。 h2を追加して、フォームをフェードアウトするだけで、デフォルトのアクションが発生しないようにします(これは通常フォームを送信することです)。この詳細は

$('#form').submit(function(){ 
    $.post($(this).attr('action'), { update: $(this).find('#text).val() }, function(){ 
    // success 
    }); 
}); 

チェックアウトのjQuery API /ドキュメント:ここ

は、POSTのAjaxのリクエストを作成する方法の基本的な例です。これを行う方法については、ネット上で数多くのチュートリアルが潜んでいます。

+0

K、よく私やった、AJAX機能を作成し、上のデータを送信しようとしますが、私のアクションページは、私がいることを確認することができますどのように、更新という名前のポスト変数を探しています変数は、名前の更新 – mcbeav

+0

と送信されます、ありがとう、ポスト機能も悪い見てください。本当に素早くこれを試してください。 – mcbeav

1

まあ、イベントハンドラ関数からfalseを返すことによって、あなたは二つのことをトリガー:

  • は、デフォルトのアクション(.preventDefault())を防止
  • イベント伝播(.stopPropagation())を停止

この提出が起こるのを防ぎます。

送信イベントハンドラ内で自分でデータを転送する必要があります。たとえば、フォームデータをシリアル化してサーバーに送信するajaxリクエストを作成します。

次のようになります。

$('#form').live('submit',function(){ 
    $('#form').fadeOut('slow'); 
    $('#div').append("<h2>submittes</h2>"); 

    $.post('execute.php', $(this).serialize(), function(data) { 
     // do something after success 
    }); 
    return false; 
}); 
関連する問題