我有一个contact
页面,可以将contact details
和message
放在一起。一旦他们提供了信息,就会保存到mongodb collection
。如果没有错误,我想清空联系表格并显示一条弹出消息,说谢谢。现在,如果我使用
app.post("/contact", function(req, res){
var name = req.body.name;
var email = req.body.email;
var phone = req.body.phone;
var message = req.body.mess;
var contact_message = new Contact({name:name,email:email,phn_no:phone,message:message});
contact_message.save(function (err) {
if (err) {
return err;
}
else {
console.log("Contact details saved");
res.render("contact");
}
});
上面的代码只返回相同的contact page
而没有感谢消息。如果我尝试创建一个新的ejs
页面(例如:thankyoupage )并通过使用以下方式发送消息来呈现该页面:
res.render("thankyoupage",{message: "thankyou"});
它只会呈现新的谢谢页面并使联系页面不受影响。所以在这种情况下我不会有联系页面。我想要的东西是两者的混合物,我会在后台的联系页面上显示一个弹出的消息,显示感谢信息。无论如何,我能做到吗?任何建议/帮助/示例都将受到高度赞赏。
答案 0 :(得分:1)
在您的联系人页面中,您可以插入在首次加载页面时运行的脚本。该脚本检查是否在页面中设置了某个Javascript变量。如果设置了该变量,则脚本会弹出一条感谢信息。如果未设置Javascript变量,则该脚本不执行任何操作。
然后,在服务器上,当您呈现页面时,您向模板传递一个属性,告诉它要为Javascript变量插入什么。这样,您的渲染操作可以控制页面是否会弹出消息。
您可以根据需要将其设置为功能丰富。例如,您可以传递渲染,您希望页面显示的确切消息,模板可以将该消息放入页面中的脚本将显示的Javascript变量中。
同样,弹出窗口可以像你想要的那样丰富。它可能是占据整个页面的整个div,而页面的联系人部分暂时隐藏,或者您可以在常规联系页面上使用alert()
或prompt()
消息框。