我甚至不知道我的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');
}
});
});
答案 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
}
})