2016-02-28 72 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