2017-08-29 11 views
0

私は自分のajaxでどこが間違っているのか知っていません。私はインターネットから学びますが、私はまだPOSTデータを傾けません。 私のhtmlコード:POSTデータをJSON配列にjquery ajaxで挿入しますか?

<h3>Input new data</h3> 
<form name="contact"> 
    <input type="text" placeholder="id berita" id="idberita" /> 
    <input type="text" placeholder="title berita" id="titleberita" /> 
    <input type="text" placeholder="content berita" id="contentberita" /> 
    <input id="create_at" type="datetime-local"> 
    <button type="submit" id="add-data">add</button> 
</form> 

これは私のAjaxコードです:デフォルトで

$('#add-data').on('click', function() { 
    var order = { 
     id  : $idberita.val(), 
     title  : $titleberita.val(), 
     content : $contentberita.val(), 
     create_at : $create_at.val() 
    }; 
    $.ajax({ 
     type : 'POST', 
     url : 'json/student.json', 
     data : order, 
     success: function(newContent) { 
      $orders.append('<li>dataid: '+newData.id+', title:'+newData.title+', content:'+newData.content+', create_at: '+newData.create_at+'</li>'); 
     }, 
     error: function() { 
      alert('error saving data'); 
     } 
    }); 
}); 
+1

フォームは送信されるため、ページがリロードされますか? – guradio

+1

newDataの代わりにnewContentを使用してください!成功後 –

+0

ページがリロードされ、データが入力できなくなり、コンソールに何も表示されなくなります。@guradio – indodev28

答えて

1

、フォームを送信すると、ページが更新されます。 jQueryのevent objectは、常にあなたのイベントハンドラの最初の引数として渡されたので、この動作を防止するためにそれを使用されています

 $('#add-data').on('click', function(event) { 
      event.preventDefault(); 

       var order = { 
       id: $('#idberita').val(), 
       title: $('#titleberita').val(), 
       content: $('#contentberita').val(), 
       create_at: $('#create_at').val(), 
      }; 


      $.ajax({ 
       type: 'POST', 
       url: 'json/student.json', 
       data: order, 
       success: function(newContent) {  
        $orders.append('<li>dataid: '+newContent.id+', title:'+newContent.title+', content:'+newData.content+', create_at: '+newData.create_at+'</li>'); 
       }, 
       error: function(){ 
        alert('error saving data'); 
       } 
      }); 

     }); 
+0

私はあなたに提案を試みました。データと私はコンソールを見て "リソースを読み込めませんでした:サーバーが405の状態(メソッドは許可されていません)"で応答しました – indodev28

+0

あなたはどのブラウザを使用していますか? –

+0

Google Chrome for the brower – indodev28

0

使用.serialize()それは、配列のセットにフォーム内の全てのデータ入力要素を収集しますが、あなたがする必要がいけません1で定義します

$.ajax({ 
    type: "POST", 
    data: $("#formid").serialize(), 
    url : "your/post/url", 
    success: function(callback){ 
    // success handler 
    }, 
    error: function(){ 
    // error handler 
    } 
}) 
関連する問題