2017-08-07 39 views
1

試圖獲得功能,以搜索一個MySQL數據庫的關鍵字使用JavaScript,遇到問題,如何執行js中的命令以及如何將輸入框中的關鍵字插入到mysql查詢。功能搜索數據庫的關鍵字

<html> 
<head> 
<title></title> 

<script> function mysqlList(){ 

var keyword = document.getElementById('keyword').value; 


var mysql = require('mysql'); 


var connection = mysql.createConnection(
{ 
host  : 'localhost', 
user  : 'xxxxxx', 
password : 'xxxxxx', 
database : 'joblist', 
} 
); 

connection.connect(); 


var queryString = 'SELECT name, trello FROM graduates WHERE (name LIKE '%keyword%' OR trello LIKE '%keyword%'); 

connection.query(queryString, function(err, rows, fields) { 
if (err) throw err; 

for (var i in rows) { 
var console = console.log('name: ', rows[i].name, '|', 'trello: ', rows[i].trello); 
} 
}); 

connection.end(); 
}; 

window.console = { 
log: function(str){ 
var node = document.createElement("div"); 
node.appendChild(document.createTextNode(str)); 
document.getElementById("myLog").appendChild(node); 
} 
} 

</script> 
</head> 
<body onload="onload();"> 
<input type="text" name="enter" class="enter" value="" id="keyword"/> 

<button onclick="mysqlList()">run query</button> 



<p id="myLog"></p> 
</body> 
</html> 

這是目前非功能性,但即使任何人都可以在一些好的教程的方向指向我,我將不勝感激。

謝謝!

+1

'此時此功能無效嗎?你爲什麼認爲它不起作用? –

+0

爲什麼你的html中顯然是一個nodejs腳本? –

+0

這不起作用,因爲它不是服務器端。您正試圖執行服務器端代碼,客戶端。 – Derek

回答

1

你不能那樣做。

第一個:require()特定於NodeJS。它在瀏覽器中不可用。一些可以加載的模塊在瀏覽器中可用,但是mysql不是。

二,相關:無法直接從網頁瀏覽器連接到MySQL數據庫。運行在瀏覽器中的Javascript只能建立到Web服務器的HTTP連接,即使這樣也只能在有限的基礎上進行。

您需要在服務器上實現API(可能使用Node,可能還有其他)來執行搜索。然後,您可以使用XMLHttpRequest瀏覽器API或基於它的東西,如jQuery中的$.ajax()來調用該API。

相關問題