我找到了一些有关“phonegap canvas signature”的帖子,但它们并没有帮助我。我有一些下拉框、文本框和一个签名字段。我想把这些字段插入sqlite数据库中。
我的数据库表创建如下:
tx.executeSql("CREATE TABLE IF NOT EXISTS parts(id INTEGER PRIMARY KEY AUTOINCREMENT,nr,productId,description,toolsVerified)");
tx.executeSql("CREATE TABLE IF NOT EXISTS costs(id INTEGER PRIMARY KEY AUTOINCREMENT,nr,date,starttime,endtime,reason,cost)");
tx.executeSql("CREATE TABLE IF NOT EXISTS sign(orderNr unique ,rapport,sign)");
对于文本字段,像往常一样读取字段值。 对于画布签名字段,则需使用下拉列表。
kundusSign = $("#mKundusskirt")[0];
kundensUnderSkrift = kundusSign.toDataURL();
这是插入数据的代码:
db
.transaction(function(tx) {
// for parts table
tx
.executeSql(
"insert into parts(nr,productid,description,toolsVerified) values(?,?,?,?)",
[ nr, productId, desc, tool ]);
// for cost table
tx
.executeSql(
"insert into costs(nr,date,starttime,endtime,reason,cost) values (?,?,?,?,?,?)",
[ nr, date, startTime, endTime, reason, cost ]);
// for sign table
signQuery = 'UNION SELECT ' + nr + ", '" + rapport + "','"
+ kundensUnderSkrift + "'";
tx
.executeSql('insert or replace into "sign" SELECT "orderNr","rapport","sign"'
+ signQuery);
});
我为签名包含了签名插件。现在我的问题是,当我在签名栏中输入时,数据库字段未被插入。当我尝试移除插入查询并将签名更改为其他两个表(成本和零件)的值也未被插入。如果我不触及签名字段,则所有值都会成功插入,对于图像,它会以toDataurl()格式进行插入。
我只在堆栈跟踪中收到这个错误:
sqlite(23)未授权
。
请给出一些解决方案。
编辑: 我也尝试了这个:
tx.executeSql("insert into sign(orderNr,sign,rapport)values(?,?,?)",[nr,rapport,kundensUnderSkrift]);