使用jquery ajax将数据POST到JSON数组中?

时间:2017-08-29 03:52:07

标签: javascript jquery json ajax

我甚至不知道我的ajax中的错误代码在哪里,我从互联网上学习但仍然无法发布POST数据。 我的HTML代码:

<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');
        }
    });
});

2 个答案:

答案 0 :(得分: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');
                }
            });

        });

答案 1 :(得分:0)

使用.serialize()它会将表单中的所有数据输入元素收集到一组数组中,你不需要通过一个来定义

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