2011-10-19 14 views
0

私はajaxを使用してフォームを投稿しようとしています。AJAX jquery Form投稿が機能しない

今、私が持っているコードは

$("#sub").click(function() {  
    var tag = $("#tagbar").val(); 
    var opinion = $("#op").val(); 
    alert($("#expressform").serialize()); 
    $.post("dbfunctions.php", $("#expressform").serialize()); 
}); 

この作品ですが、とき、それは、それが前にかかった時間に比べて(dbfunctionsが何をthatsの)投稿してデータベースに追加するには長い時間がかかります私はフォームアクションを使用して、ページをリフレッシュしていました。どうしてこれなの?

また、アラートを削除すると、スクリプトは完全に機能しなくなります。私はこれが理にかなっているとは思えません。

おかげ

答えて

2

あなたはクリックハンドラからfalseを返すことによって、ボタンのデフォルトのアクションをキャンセルしていることを確認してください:代わりに、ボタンのクリックを提出するために加入するのも

$("#sub").click(function() {  
    $.post("dbfunctions.php", $("#expressform").serialize()); 
    return false; 
}); 

は、それは提出に加入する方が良いでしょう対応するフォームのイベント:

$("#expressform").submit(function() {  
    $.post(this.action, $(this).serialize()); 
    return false; 
}); 

この方法では、JavaScriptファイル内の任意のURLをハードコードしなくなりました。フォームを邪魔にならずに簡単にAJAX化します。

0
You can use below function for submit the data 
through Ajax form Submit 

$('#form1').ajaxForm({ 
     success:function(response){ 
      $('#save_data').html(response); 

}); 


$('#btnSubmit').click(function() { 

      $('#form1').submit(); 

    });