Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数据从ejs(日期选择器)传递到js(查询数据库),然后将结果显示回ejs(在标签中)?_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 如何将数据从ejs(日期选择器)传递到js(查询数据库),然后将结果显示回ejs(在标签中)?

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> <

我是Nodejs/Mongo数据库的初学者。我正在设计一个简单的页面,在这个页面中,点击按钮可以显示所选日期的通过/失败状态

我了解了如何查询mongo DB集合以获取特定日期的通过和失败值(此“日期”必须来自html日期选择器)

所以我想知道如何使其动态化,以便它适用于datepicker中选择的任何日期

有人能帮忙吗?我一直在努力寻找解决办法

**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。以下更改应有助于:

使用html
form
发布方法(或者您可以使用
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。以下更改应有助于:

使用html
form
发布方法(或者您可以使用
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 }))