在javaScript中连接数据库

时间:2009-12-14 09:07:54

标签: c# asp.net javascript database

我在javaScript中有这个菜单:

menu[1] = {
    id: 'menu1', //use unique quoted id (quoted) REQUIRED!!
    fontsize: '100%', // express as percentage with the % sign
    linkheight: 22,  // linked horizontal cells height
    hdingwidth: 210,  // heading - non linked horizontal cells width
    // Finished configuration. Use default values for all other settings for this particular menu (menu[1]) ///
    kviewtype: 'fixed',
    menuItems: [ // REQUIRED!!
    //[name, link, target, colspan, endrow?] - leave 'link' and 'target' blank to make a header

[prompt("add a note:", ""), "", ""]


]
};  

我想用来自数据库的数据替换提示......

4 个答案:

答案 0 :(得分:5)

由于您的页面是由您使用的任何服务器脚本生成的,因此请从数据库中获取数据并将其作为javascript的一部分进行操作。

无论你做什么,都不要试图直接从JAVASCRIPT连接到数据库。这样做将允许任何用户操纵javascript并在数据上运行他们想要的任何查询。

答案 1 :(得分:3)

http://bytes.com/topic/javascript/answers/532398-connect-access-database-using-javascript

正如CK所说,这是他们可以做的事情之一,但不应该。但是,自从您提问后,代码就在上面的帖子中。

答案 2 :(得分:0)

我会尝试详细说明ck建议的内容。 这不是微不足道的,我认为你需要:

  • 服务器端,在系统级,您需要设置一个sql引擎,例如MySQL。
  • 服务器端,在应用程序级别,是一个抽象层,用于检查数据请求并将其转换为sql查询。
  • 客户端,即动态请求数据页面的AJAX层。

这意味着你必须建立一些东西,仅用于菜单。

或者,您可以通过您选择的任何语言的脚本来机器生成初始化数据结构的JavaScript代码。 伪代码:

print "menu[1] = {"
print "id: 'menu1'"
//etc. for constant lines
//...
print "menuItems: ["

result_set = <local sql query>
for (row in result_set)
  print "[ "
  print row.name
  print ", "
  print row.link
  print ", "
  print row.target
  print "]"

next

这不是动态的:它无法根据请求进行更新,您必须重新运行它并在服务器上替换生成的Javascript,但是如果数量级更容易实现(这还取决于您的专有技术和当然,服务器上的权限。)

答案 3 :(得分:0)

1创建一个ASP.NET服务器页面,其中包含所有菜单注释的XML。

例如

&lt;数据&GT;

&lt; note id = 1&gt;我的注释1&lt; / note&gt;

&lt; note id = 2&gt; etc ...&lt; / note&gt;

&LT; /数据&GT;

2修改.NET页面代码以从SQL获取笔记计数和注释文本,并将其合并到XML流中(将连接字符串保留在服务器上)。

3编写一些Javascript onLoad =代码,如果有必要设置菜单而没有开始的注释(因为其余的数据将稍微或稍后异步进入或根本不进入,具体取决于网络,当然不是立即onLoad =时间)。

4编写一些异步Javascript代码,用于下拉XML并使用XML的DOM模型对节点进行计数,拉出注释文本,将其推入正确位置的菜单对象并更新可见的对应部分如果适合,那就到那个菜单。

5如果AJAX不能在特定用户的浏览器平台上运行,请编写一些后备代码,例如,服务器生成 Javascript,如Andrea所示,或者只是不显示菜单注释(如果apt)。 / p>

我从你如何说这个要求将很快改变的感觉,以便你需要更多的架构领域,并在UI中更加突出这个过程的动态方面而不是暗示。但是这应该让你在开始运行时有一个良好的开端,并且从技术上开始朝着正确的方向前进。