2012-01-04 24 views
2

我很難過我看遍了互聯網,發現沒有真正的方法來訪問JavaScript內的MySQL,因此我不能做我需要的東西。在javascript中使用mysql代碼?

基本上我的JavaScript代碼加載了使用iframe的隨機網站,我想從mysql數據庫中提取這些網站列表,但我看不到這樣做。我已經嘗試在JavaScript中使用php的包含函數,但沒有運氣。

任何想法?

更多信息:

進出口使用我的服務器上的腳本,我呼籲腳本的源sitelist.js。所有腳本包含以下內容:

targetURLs = [ 
'http://www.aol.com', 
'http://www.yahoo.com', 
'http://www.bing.com' 
]; 

但我想它從MySQL數據庫,而不是有這些網站加載網站。

+0

首先,JavaScript的不應該有你的數據庫的直接訪問。其次,你是什麼意思bt「我嘗試過使用php的包含函數在JavaScript中」? – Ivan 2012-01-04 01:20:19

+3

你誤解了javascript的作用。 Mysql在服務器上運行,因此必須由服務器上的另一種語言訪問。 Javascript運行在客戶端的機器上,因此無法直接訪問mysql。看看AJAX,它可以讓JavaScript調用你的PHP文件(以及更多)。 – 2012-01-04 01:21:21

+2

爲什麼不製作一個返回這些網站字符串的JSON列表的PHP腳本。然後你可以用JavaScript中的列表來做任何你想做的事情。 – styfle 2012-01-04 01:24:50

回答

4

嘗試一些沿着這些線路,與$sites是您從數據庫URL的陣列...

<script type="text/javascript"> 
    var sites = JSON.parse("<?php echo addslashes(json_encode($sites)); ?>"); 
    // now do stuff with sites. 
</script> 
+0

Muuuch更好的主意。 – 2012-01-04 01:21:46

+0

我對這段代碼的實現略有困惑。你能多解釋一下嗎? – Twister 2012-01-04 01:23:03

+0

首先您使用PHP從MySQL獲取您的URL列表並將它們放入數組中。然後使用我給你的代碼將它們轉換成JavaScript。 – 2012-01-04 01:24:02

1

這是不能做到的。 Javascript(目前)沒有原始套接字。因此,你不能關閉像mysql這樣的非HTTP網絡服務。但是,你可以使用一些可怕的ajax API來包裝它(來自javascript的SQL,不管它是如何實現的,這是一個可怕的想法)。

+1

瀏覽器端JavaScript沒有數據庫訪問,但服務器端JavaScript可以訪問數據庫。你的回答似乎絕對聲明瞭JavaScript無法完成的事情,但在所有JavaScript平臺上都不是這樣。這個問題雖然模糊不清。 – Zoredache 2012-01-04 01:29:23

+0

非常真實,我假設瀏覽器端的JavaScript。好決定。 – 2012-01-04 02:06:21