在ajax调用期间显示一个带有进度的模式窗口

我有一个Excel表格,其中包含+30000logging,我插入每个logging到数据库中,我想显示一个模式窗口进度条和完成百分比包括logging总数,插入logging数,失败logging数量等。我无法更新我提到的标签。 我已经尝试过使用jQuery,但是我无法在运行时将值设置为javascriptvariables来增加logging插入的值。 我正在使用PHP(Codeigniter)插入每个logging到数据库中。

我是新的JQuery和PHP。 请帮忙。 谢谢..

有很多方法可以实现这一点。 你可以上传整个文件,让PHP处理它(我认为这会更快,更高效)。 问题是得到一个准确的读取PHP的插入到数据库中的每一行的进度。 你可以使用flush()来输出返回给jQuery听的浏览器,但我不认为这是最好的方法。

另一种方法是让jQuery处理文件并更新进度条并计数。 可能会出现的问题是您要插入到数据库中的行数 – 30,000条logging可能相当多,但以下是我如何尝试它。

首先你需要一个jQuery插件: https : //code.google.com/p/jquery-csv/

我把评论放入jQuery脚本,以便您可以定位您的模式框,并显示何时做ajax等。

以下是我使用的保存为本地* .csv文件的数据文件:

一个,1
 B,2
 C,3
 d,4
 E,5
女,6
克,7
小时,8
我,9
 Ĵ,10

但基本上,你parsingCSV文件,并提交每个行/logging到PHP服务器插入到数据库。 通过ajax每次成功的响应,你更新进度条和计数器(成功和错误)。

http://jsfiddle.net/dmayo2/u3kqgjLy/

以下是相关的代码片段:

var reader = new FileReader(); reader.readAsText(file); reader.onload = function(event) { // process csv file } 

我的2¢