动态生成SQL查询条件定制表单及语句的脚本

/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:(wallimn
电邮:wallimn@sohu.com
博客:http://wallimn.bokee.com
   http://blog.csdn.net/wallimn

网络硬盘:http://wallimn.gbaopan.com
时间:2006-12-15
/***********本人原创,欢迎转载,转载请保留本人信息*************/

  最近使用AJAX技术来做东西,写了很多的JS代码,也分析了一些别人的JS程序,使用VS.net进行跟踪调试,积累了些经验,现在可以很流畅地使用JS来写些程序来满足自己的需要了。
  我做的东西里有一项是通用的表格展示,服务器端使用DOM4J来转换生成XML数据,在客户端使用JS解析XML数据,然后在插件中展示数据,附带添加、删除及修改功能,这部分功能已经实现,基本上使用一个页面和一个Action(struts里的东东)就可以对任何表进行展示、添加、删除和修改。但对于查询,不太容易做到通用,想了好长时间,还是使用XML与JS来解决了。也就是使用XML来定义要查询的字段、类型,然后在客户端自动解释成表单。目前的版本功能很简单,没有数据验证功能,仅能用AND连接查询条件(不过好象实际使用中,多数时候都是用AND),更多功能在以后会进一步完善。
  代码分为四个部分:
  一、核心是解析XML形式的表单定义数据、生成表单、拼接SQL语句、并对表单面板进行控制的JS文件;其中XML数据可以是数据岛中定义的,可以是网页中的字符串,也可以是单独的XML文件,另外,XML数据可以使用异步的方式进行加载(这个功能借鉴了dhtmlXTree中的方法);
  二、一个辅助的日期选择脚本,供日期类型字段选择日期用;
  三、一个样式表文件;
  四、一个例子网页;
  下面我的核心代码贴在这里,详细的代码请到我的网络硬盘下载http://wallimn.gbaopan.com,或发邮件向我索取。
///sqlgen.js///
// JavaScript Document
 function sqlgen(fields){
  this.dateind=0;
  this.panelini=false;
  if(typeof fields=="object")
   this.fields=fields;
  else this.fields=null;
  this.panelini=false;
  this.contab=document.getElementById("conditiontabbody");
  this.whereclause="";
  this.onokafter=function(sql){alert("条件子句为:"+sql+"/n点击后处理事件尚未添加,请定义onokafter函数。");};
  this.test = function(){
   return this.onokafter.apply(null, this);
  };
 }
 function genbtnhook(self){
  var okbtn = document.getElementById('beginsearch');
  if(typeof okbtn!="undefined"){
   okbtn.οnclick=function(){return self.onsqlok.apply(self, []);};
  }
 }
 sqlgen.prototype.onsqlok=function(){
  //return null;
  this.whereclause = this.getsqlstring();
  //alert(this.whereclause+this.dateind);
  if(this.onokafter!=null){
   //this.onokafter(this.whereclause);
   //alert(this.whereclause);
   return this.onokafter.apply(null, [this.whereclause]);
  }
 }
 sqlgen.prototype.getsqlstring=function(){
  //var contab = document.getElementById("conditiontabbody");
  if(this.fields==null || typeof this.contab=="undefined")return "";
  //alert(contab.tbody.innerHTML);
  var trs = this.contab.getElementsByTagName("tr");
  var onerow=null;
  var desc, type, name;
  var c1,c2,v1,v2;
  if(typeof trs == "undefined")return "";
  //var fields = document.all('xmlfields').XMLDocument.getElementsByTagName('Field');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 HTML 页面,其中包含一个下拉列表和一个提交按钮。用户可以选择列表中的选项,然后单击提交按钮以触发 Python 脚本查询数据库。 ```html <!DOCTYPE html> <html> <head> <title>动态选择查询条件</title> </head> <body> <h1>动态选择查询条件</h1> <form action="query.py" method="post"> <label for="condition">查询条件:</label> <select id="condition" name="condition"> <option value="name">姓名</option> <option value="age">年龄</option> <option value="gender">性别</option> </select> <br><br> <label for="value">查询值:</label> <input type="text" id="value" name="value"> <br><br> <input type="submit" value="查询"> </form> </body> </html> ``` 在这个 HTML 页面中,我们使用了一个下拉列表来让用户选择要查询条件,以及一个文本框来输入查询值。当用户单击提交按钮时,它会将所选条件和值发送到名为“query.py”的 Python 脚本进行处理。 以下是名为“query.py”的 Python 脚本的示例代码,它将查询条件和值用作参数来查询数据库并显示结果: ```python import cgi import sqlite3 # 连接到 SQLite 数据库 conn = sqlite3.connect('data.db') # 获取表单数据 form = cgi.FieldStorage() condition = form.getvalue('condition') value = form.getvalue('value') # 构建 SQL 查询语句 query = f"SELECT * FROM people WHERE {condition} = '{value}'" # 执行查询并打印结果 cursor = conn.execute(query) for row in cursor: print(row) # 关闭数据库连接 conn.close() ``` 在这个 Python 脚本中,我们首先连接到 SQLite 数据库。然后,我们使用 Python 的 CGI 模块获取来自 HTML 表单查询条件和值。接下来,我们使用这些参数构建 SQL 查询语句,并使用 SQLite 的 execute() 方法执行查询并打印结果。 请注意,这只是一个简单的示例代码,用于演示如何使用 HTML 和 Python 来动态选择查询条件。实际应用中,您需要根据您的特定需求进行更多的自定义和错误处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值