2012-01-04 55 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