2012-03-31 9 views
0

jQueryの:Ajaxは.. PHP

あなたいたずらコード動物のHelloを投稿していない私は、このコードが動作するように取得しようともそれを探しています。しかし、私は理解できる最新の答えが見つからない。 これでフォームを、次にjQueryをお渡しします。

FORM:

<div id="blab_form_overcontent"> 
    <table border="0" align="center"> 
     <form id="submit_blab" method="post"> 
     <input type="text" name="blab_title" id="blab_title" value="" placeholder="title(optional):"/><br/> 
     <textarea name="blab_text" id="blab_text" value="" placeholder="text:"></textarea> 
     <input type="submit" id="blab_submitb" name="blab_submitb" value="Post"/> 
     </form> 
     <div class="success" style="display: none;">Blab has been added.</div> 
    </table> 
</div> 

のjQuery:

$(document).ready(function(){ 
    $("form#submit_blab").submit(function() { 
    // I store the values from the form input box, then send via ajax below 
    var blab_title = $('#blab_title').attr('value'); 
    var blab_text = $('#blab_text').attr('value'); 
    $.ajax({ 
     type: "POST", 
     url: "classes/profileActions.php", 
     data: "blab_title="+ blab_title +"&amp; blab_text="+ blab_text, 
     success: function(){ 
      $('form#submit_blab').hide(function(){$('div.success').fadeIn();}); 

     } 
    }); 
    return false; 
    }); 
}); 

注:私は、コードが終わっ限り何かを掲示するなど取得いけないため、問題であるそのない私のprofileActions.phpを知っています。ページを再読み込みします。

よろしく、 - 無色の馬鹿。

+0

参照をクリックして提出する変更される可能性がありますPOST

data: $("#submit_blab").serialize(), 

でデータを渡すためにserialize()を使用することができますいくつかの他の変更のための私の更新された答え... –

答えて

3

ページを更新しないように指示していないため、ページをリフレッシュしています。別の答えで述べたリフレッシュの問題に加えて:)

$('#submit_blab').submit(function(e){ 
    //start with preventing the default submit action... 
    e.preventDefault(); 

    var blab_t = $('#blab_title').val(); 
    var blab_txt = $('#blab_text').val(); 

    var json = { blab_title: blab_t, blab_text: blab_txt }  

    $.ajax({ 
    type: "POST", 
    url: "classes/profileActions.php", 
    data: json, 
    success: function(){ 
     $('form#submit_blab').hide(function(){$('div.success').fadeIn();}); 
    } 
    }); 
}); 
+0

関数(e)は何ですか?私はそこに "e"を理解していません。 – Sorcher

+0

(e)はイベントオブジェクトです。 preventDefault()は、デフォルトアクションが何であっても停止し、独自のアクションを作成できるイベントメソッドです。 –

+0

'return false'はデフォルト動作を停止します。 – ShankarSangoli

2

、あなたのdataクエリ文字列が奇数です。 &をエンコードする必要はなく、そこに余分なスペースがあります。より良いオブジェクトを使用する代わりに、リテラル:

// Instead of: 
data: "blab_title="+ blab_title +"&amp; blab_text="+ blab_text, 

// Use an object literal: 
data: { 
    "blab_title": blab_title, 
    "blab_text": blab_text 
}, 
+0

うん。彼はまた、フォームをシリアル化することもできます。どちらの方法でも、彼が行っているものよりも優れています。 –

+0

すぐに試してみます。 – Sorcher

1

それとも、また、あなたにも

$("#blab_submitb").click(function(e)