2016-02-28 40 views
0

我试图根据用户从我的网站的选择选项中选择什么来执行对mySQL数据库的特定查询。执行Node.JS基于HTML的查询选择选项

HTML:

<select id = "year"> 
<option value = "yr" selected>Choose a Year</option> 
<option id = "2015">2015</option> 
<option value="2014">2014</option> 
<option value="2013">2013</option> 
<option value="2012">2012</option> 
<option value="2011">2011</option> 
<option value="2010">2010</option> 
<option value="2009">2009</option> 
</select> 

的Node.js:

function handleDatabase(request,response){ 
    pool.getConnection(function(err, connection){ 
    //Check if there's an error, if so, stop connection and print error 
     if(err){ 
     connection.release(); 
     response.json({"code": 50, "status": "Error in connection to database"}); 
     return; 
    } 
    connection.query("select * from 'fifteen' where TYPE = 'Mischief'", function(err, rows){ 
     connection.release(); 
     if(!err){ 
     response.json(rows); 
     } 
    }); 
     response.json({"code": 50, "status" : "Error in connection to database"}); 
     return; 
    }); 
    }); 
} 

app.get('/',function(request,response){ 
    handleDatabase(response,request); 
    } 

AJAX:

$(document).ready(function(){ 
    $('#year').click(function() { 
      $.ajax({ 
       type: 'GET', 
       url: 'http://localhost:8888/', 
       dataType: 'json', 
       success: function() { 
        console.log("Success"); 
       }, 
       error: function (data) { 
        console.log("Error.", data); 
       } 

      }); 
    }); 
}); 

我希望用户能够选择他们想要的不断的一年,然后在服务器上执行一个AJAX请求,然后对数据库执行查询。例如,用户选择2014年,向服务器发出AJAX请求,然后服务器对该表执行查询(14次),并从中返回所有数据。

回答

0

一个解决方案是只使用快递中间件动态网址参数:

var express = require('express'); 
var router = express.Router(); 

router.get('/yearQuery/:year', function(req, res) { 
    var year = req.params.year; 

    // Your code 

    res.json(//year data object); 
}); 

Ajax请求变为:

$.ajax({ 
    type: 'GET', 
    url: 'http://localhost:8888/yearQuery/' + year, 
    dataType: 'json', 
    success: function() { 
    console.log("Success"); 
    }, 
    error: function (data) { 
    console.log("Error.", data); 
    }    

我让你填写剩余部分(如年份值的文档ID选择器)。

+0

你能为我详述一点吗?我对这一切都非常陌生。对于你添加的路由器,是否需要用户在url的末尾手动键入他们想要的年份?而当你做“/ yearQuery/+ year”时,那年的变量是预先定义还是由我自己填写? – lokidoki

+0

用户只需从一个按钮或选择器中选择一年。您的代码正在创建网址。 – Devnetics

+0

年份变量由url填充。 – Devnetics