Javascript 如何将数据从ejs(日期选择器)传递到js(查询数据库),然后将结果显示回ejs(在标签中)?
我是Nodejs/Mongo数据库的初学者。我正在设计一个简单的页面,在这个页面中,点击按钮可以显示所选日期的通过/失败状态 我了解了如何查询mongo DB集合以获取特定日期的通过和失败值(此“日期”必须来自html日期选择器) 所以我想知道如何使其动态化,以便它适用于datepicker中选择的任何日期 有人能帮忙吗?我一直在努力寻找解决办法Javascript 如何将数据从ejs(日期选择器)传递到js(查询数据库),然后将结果显示回ejs(在标签中)?,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我是Nodejs/Mongo数据库的初学者。我正在设计一个简单的页面,在这个页面中,点击按钮可以显示所选日期的通过/失败状态 我了解了如何查询mongo DB集合以获取特定日期的通过和失败值(此“日期”必须来自html日期选择器) 所以我想知道如何使其动态化,以便它适用于datepicker中选择的任何日期 有人能帮忙吗?我一直在努力寻找解决办法 **userlist.ejs** <!DOCTYPE html> <html> <head> <
**userlist.ejs**
<!DOCTYPE html>
<html>
<head>
<title>Status</title>
<link rel='stylesheet' href='/stylesheets/style.css' />
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#datepicker" ).datepicker();
} );
</script>
</head>
<body>
<h1>Status</h1>
<p>Welcome to Status</p>
Date: <input type="text" id="datepicker">
<input type="button" id="txbox" value="Find">
<p>Pass is <%=userlist[0].Passed%></p>
<p>Fail is <%=userlist[0].Failed%></p>
</body>
</html>
如您所见,我在mongo db查询部分中使用了harcoded date-我想用一个变量替换它,该变量可以保存在日期选择器html(userlist.ejs)中传递的值。那我该怎么做呢
如果这听起来很无聊,我很抱歉 如果要从客户端传递一些数据,则需要
POST
http动词。要做到这一点,您需要从客户端POST
,并在服务器端收听POST。以下更改应有助于:
使用htmlform
发布方法(或者您可以使用AJAX
发布)
此外,您还需要装载主体解析器来解析传入表单主体
const bodyparser = require('body-parser');
// app or server, whatever is your express, mount this before any routes
app.use(bodyParser.urlencoded({ extended: false }))
如果要从客户端传递一些数据,则需要POST
http动词。要做到这一点,您需要从客户端POST
,并在服务器端收听POST。以下更改应有助于:
使用htmlform
发布方法(或者您可以使用AJAX
发布)
此外,您还需要装载主体解析器来解析传入表单主体
const bodyparser = require('body-parser');
// app or server, whatever is your express, mount this before any routes
app.use(bodyParser.urlencoded({ extended: false }))
<form action="/userlist" method="POST">
<input type="text" id="datepicker">
<button type="submit" id="txbox" value="submit"><Find<button>
</form>
router.post('/userlist', function(req, res) {
// where did you get this?
var db = req.db;
// from html form, probably need some parsing
var date = req.body.datepicker
var collection = db.get('usercollection');
collection.find({
$and: [
{"Date": date}
]
},function(e,docs){
res.render('userlist', {
"userlist" : docs
});
});
});
const bodyparser = require('body-parser');
// app or server, whatever is your express, mount this before any routes
app.use(bodyParser.urlencoded({ extended: false }))