我遇到了一些javascript / jquery和数据库连接的问题。
基本上我想:
connect to a database - update progress bar - open a recordset - update progress bar.
唯一的问题是进度条和其他一些文本不会更新。我试过环顾四周但却找不到适合我所做的答案。
我目前的代码是:
<link rel="stylesheet" href="serveraddress\jquery.ui.all.css">
<script src="localaddress\jquery-1.6.2.js"></script>
<script src="localaddress\jquery.ui.core.js"></script>
<script src="localaddress\jquery.ui.widget.js"></script>
<script src="localaddress\jquery.ui.datepicker.js"></script>
<script src="localaddress\jquery.ui.progressbar.js"></script>
<script type="text/javascript" src="localaddress\jquery.selectBox.min.js"></script>
<link rel="stylesheet" href="localaddress\jquery.selectBox.css"></script>
我的JavaScript代码:
var global = this;
global.CrntAItem = 'Date'
function changeagent(agnttype,aitem){
global.atype = "agnt"
var innerHTMLstring = ""
if(global.CrntAItem!='Date') {
document.getElementById(CrntAItem).style.color = '#818181';}
else{global.CrntAItem=aitem;}
global.CrntAItem=aitem
if(agnttype=='agnt'){
document.body.style.cursor = 'wait'
document.getElementById(CrntAItem).style.color = '#F79433';
document.getElementById(CrntAItem).innerHTML = 'Loading...';
var dbConnString =""
var startvalue = 50
var pgrssvalue = 0
var SQL = "select * from 1ccAgentsQuery";
var rs = new ActiveXObject("ADODB.Recordset");
var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ='client side database path here';Jet OLEDB:Database Password=passwordhere;Persist Security Info=False";
var cn = new ActiveXObject("ADODB.Connection");
cn.Open(strConn);
pgrssvalue = pgrssvalue + startvalue
$( "#progressbar" ).progressbar({value: pgrssvalue})
rs.Open(SQL,cn,1,1)
global.pgrssvalue = global.pgrssvalue + startvalue
$( "#progressbar" ).progressbar({value: global.pgrssvalue})
if(rs.eof==true){alert("No Agents in Work Type");return;}
rs.movefirst
var x=rs.recordcount;
}
}
对不起,如果这是基本的或完全混乱,我正在学习,因为我要去,我有一些限制(这就是为什么我使用某些代码而不是其他人。
变量的一些快速事项:
CrntAItem
在代码中是<span>
,上面的函数可以解决点击问题
agnttype
可以等于“agnt”或“dept”
任何帮助都会很棒。
答案 0 :(得分:0)
尝试使用计时器异步运行“繁重”任务。
将相关的代码块更改为:
//....no change here....
var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ='client side database path here';Jet OLEDB:Database Password=passwordhere;Persist Security Info=False";
var cn = new ActiveXObject("ADODB.Connection");
//change to use timer:
window.setTimeout(function() {
cn.Open(strConn);
pgrssvalue = pgrssvalue + startvalue;
$("#progressbar").progressbar({value: pgrssvalue});
window.setTimeout(function() {
rs.Open(SQL,cn,1,1);
global.pgrssvalue = global.pgrssvalue + startvalue;
$("#progressbar").progressbar({value: global.pgrssvalue});
if(rs.eof==true)
alert("No Agents in Work Type");
else {
rs.movefirst
var x=rs.recordcount;
//logic using x here......
}
}, 100);
}, 100);
注意“逻辑使用x here”注释 - 通过使用异步代码,您还必须更改逻辑并在计时器中执行所有操作 - 如果需要进一步的指导,请使用recordcount发布代码。