[REGISTER SHIFT/ ASSIGNMENT FORM]
这是我的表格,请允许我描述一下;它注册了下周的工作时间,我设计了2种情况:添加新内容并以相同的表格进行编辑。
当用户选择一个员工时,如果尚未注册班次,我们让用户为该员工注册,如果班次已注册,则用户可以用相同的格式进行编辑。而且我认为最好不要刷新页面,每次用户更换员工时,表单都将更新并让用户添加/编辑然后通过post方法提交。
我在网上搜索,找到了有关ajax / jQuery的推荐。
还有其他建议吗?我刚刚在PostgreSQL数据库中学习了Nodejs / Express。
我正在尝试使用ajax从发布事件中加载mypage,我在ajax中调用错误函数以查看错误并得到:
解析JSON请求失败。状态200。
我正在使用NodeJS Express服务器,EJS视图引擎,主体解析器,PostgreSQL数据库。
pool.connect((err, client, release) => {
if (err) {
return console.error('Error acquiring client', err.stack)
}
client.query(
'SELECT * FROM "Employee"', (err, result) => {
release()
if (err) {
res.end();
return console.error('Error executing query', err.stack);
}
console.log(typeof(result));
res.type('json');
res.render("index", {emplist : result});
res.end();
})
})
我的ajax函数:
$.ajax({
url: "/addshift",
type: "POST",
data: JSON.stringify(employee),
dataType: "application/json",
contentType: 'application/json',
complete: function () {
console.log("go into complete !");
},
success: function (response) {
console.log(response);
console.log("go into success !");
},
error:function(x,e) {
if (x.status==0) {
alert('You are offline!!\n Please Check Your Network.');
} else if(x.status==404) {
alert('Requested URL not found.');
} else if(x.status==500) {
alert('Internel Server Error.');
} else if(e=='parsererror') {
alert('Error.\nParsing JSON Request failed. ' + x.status);
} else if(e=='timeout'){
alert('Request Time out.');
} else {
alert('Unknow Error.\n'+x.responseText);
}
}
});
答案 0 :(得分:-1)
让我们看看:
“我正在尝试使用Ajax从发布事件中加载我的网页”
好吧,所以我想您想从$ post中获得一个完整的HTML页面。
然后,我看到了:
console.log(typeof(result));
res.type('json');
res.render("index", {emplist : result});
res.end();
res.render将返回HTML,这对您的目标很有用。但是,您还要使用res.type指定JSON类型。这导致错误。 HTML显然不是JSON。
此外,您不需要调用res.end()。 res.render()会自行正确完成事务,res.end用于错误或意外情况。
您的Ajax代码还可以,但是如果您尝试更新html组件(例如select),则需要使用ajax的响应手动进行操作,例如:
$("#selectElem").html(response);
此外,您应该从SELECT * FROM EMPLOYEE查询中检查结果对象,将其格式正确设置为正确的JSON