为循环调用JavaScript中的SQL
Calling SQL in JavaScript for loop
我正在用JavaScript编写一组函数,用户可以在其中添加新行程或编辑现有行程。每个行程可以有(0-n)个与该行程相关的喷枪。无论哪种方式,保存和编辑函数都会调用rangeSaveGun。当从"保存新行程"函数调用时,此函数(如下)将完美执行。新记录将添加到数据库中并显示。然而,当从"edit trip"函数调用时,SQL与alert(SQL)中显示的完全相同,但记录从未保存到DB中。知道为什么吗?在这两种情况下,调用此操作只是为了向行程中添加新枪支(而不是编辑现有枪支)。
我的问题:在下面的函数中,当从"Edit"函数而不是"New"函数调用完全相同的函数时,为什么没有将行插入数据库?无论哪种方式,"sql"文本都是完全相同的(如"alert"中所验证的)。我错过了什么?"新"answers"编辑"功能都是通过点击按钮调用的,只需保存或编辑行程,然后在最后调用此rangeSaveGun功能。
我已经在使用标准的变通方法来确保关闭。我可以确认,所有3个变量(tripNum、input2temp和input3temp)都显示了所有场景中的预期值。所有值都是数字。
function rangeSaveGun(tripNum)
{
var tbl2 = document.getElementById("mytable2");
var rowCount=tbl2.rows.length;
for (var i = 1; i < rowCount; i++) {
var el = document.getElementById("GunVal"+i)
if(el != null)
{
(function(i){
var input2temp = document.getElementById("GunVal"+i).value;
var input3temp = document.getElementById("Rounds"+i).value;
var sql = 'INSERT INTO RangeShot (TripID, GunID, Rounds) VALUES ('+tripNum+', '+input2temp+', '+input3temp+')';
db.transaction(function (tx) {tx.executeSql(sql, [])});
alert(sql);
})(i);
}
}
}
我发现了问题。实际上,这是由于我调用了一个INSERT语句,该语句仍在运行,而另一个UPDATE语句正在运行。DB被第一个写语句锁定,因此第二个写语句从未执行。我不得不重新编写我的"更新"函数来按不同的顺序调用项目。
我最后更改的另一件事是将按钮类型从"提交"更改为"按钮"。
function rangeUpdateRecord()
{
db.transaction(function (tx) {
var input1temp = document.getElementById("Name").value;
var input2temp = document.getElementById("Address").value;
var input3temp = document.getElementById("Lat").value;
var input4temp = document.getElementById("Lng").value;
var input5temp = document.getElementById("Duration").value;
var input6temp = document.getElementById("Date2").value;
var input7temp = document.getElementById("StartTime").value;
var input8temp = document.getElementById("Notes").value;
var idupdate = $("#id").val();
var tbl2 = document.getElementById("mytable2");
var rowCount=tbl2.rows.length;
for (var i = 1; i < rowCount; i++) {
var el = document.getElementById("GunVal"+i);
if(el != null)
{
(function(i){
var input2temp = document.getElementById("GunVal"+i).value;
var input3temp = document.getElementById("Rounds"+i).value;
var sql = 'INSERT INTO RangeShot (TripID, GunID, Rounds) VALUES ('+idupdate+', '+input2temp+', '+input3temp+');';
db.transaction(function (tx) {tx.executeSql(sql)});
//alert(sql);
})(i);
}
}
db.transaction(function (tx) {
tx.executeSql('UPDATE RangeTrip SET Name = ?, Address = ?, Lat = ?, Lng = ?, Duration = ?, Date2 = ?, StartTime = ?, Notes = ? WHERE id=?', [input1temp, input2temp, input3temp, input4temp, input5temp, input6temp, input7temp, input8temp, Number(idupdate)],rangeLoadAndReset(),onError);
});
});
}
相关文章:
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 捕获初始RedQueryBuilder查询中的SQL问题
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 从sql填充Jqgrid的自定义Add函数中的下拉数据
- 谷歌地图/SQL-添加链接到信息面板中的字段
- 为循环调用JavaScript中的SQL
- 如何通过ibmworklight中的sql适配器从db2中检索或显示html页面上的数据?android混合应用程序开发
- 在网站中处理 SQL 响应的位置
- 如何在不刷新页面的情况下从 PHP 中的 SQL Server 数据库获取数据
- 在使用 Javascript Query Builder 时防止 Rails 中的 SQL 注入
- 从经典 ASP 中的 SQL 数据集为高图表创建多个数组
- 如何将这些值替换为 NodeJS 中的 sql 表达式
- Node/Express/mysql 如何使 jade 页面中的 SQL 结果
- 在尝试将插入值从javascript调用到Visual Studio中的sql服务器时,收到内部服务器错误500
- 防止 WebSQL 数据库中的 SQL 注入?(如何处理数据中的报价?
- javascript中的SQL语句
- 读取javascript中的sql查询输出
- 如何获得jquery变量的内容,以便在php中的sql查询中使用它
- PHP循环中的SQL查询在第n次迭代后失败
- 文本框中的sql server html