在这里,如果从服务器传入的C_id不正确,我不确定为什么错误功能不起作用。我从服务器数据库获取C_id并将该C_id传递给ajax请求中的其他服务器。
$.ajax
({
url: "http://proserve.ekspeservices.com/client.php",
type: "GET",
datatype: "json",
data: {type: 'login', id: C_id},// getting C_id from server, but here if C_id is incorrect error function is not working
ContentType: "application/json",
error: function()
{
navigator.notification.alert('inCorrect Key');
},
success: function(res)
{
var simpleJson = JSON.parse(res);
myDB.transaction(function (txe1)
{
for (var i = 0; i < simpleJson.User.length; i++)
{
var Cli_id= simpleJson.User[i].id;
myDB.transaction(function (txe)
{
txe.executeSql('CREATE TABLE Client_data(Mobile integer , C_id integer, U_id integer , name text , ip integer )');
});
myDB.transaction(function (txe1)
{
var data_ins = 'INSERT INTO Client_data (Mobile,C_id,U_id) VALUES (?,?,?)';
txe1.executeSql(data_ins, [p,C_id,U_id]
,function(tx, result)
{
navigator.notification.alert('Inserted' , onSignup, 'Info', 'ok');
},
function(error)
{
navigator.notification.alert('Already Registered');
});
});
}
});
}
});
答案 0 :(得分:0)
公开该函数之外的变量简单 像这样
public yourVariable;
答案 1 :(得分:0)
您也可以尝试定义函数的变量OUTSIDE,然后将其作为参数传递给函数。
这样可以为其分配值并在其他地方使用。
答案 2 :(得分:0)
首先我必须告诉您,您正在尝试访问您的client_id
中的变量,其范围仅在该ftr()内。
所以你需要全局定义它来访问它,你也需要将它定义为一个数组,因为你一次获得多个值,所以你需要推进它。 你的代码会是这样的。
此外,您需要在ab()
完成执行后调用ftr()
函数,因为ab()
输出依赖于ftr()
result.So,您可以使用Jquery延迟或只需在ab()
内拨打ftr()
,如下所示
var client_id = [];
function ftr()
{
myDB.transaction(function(transaction)
{
transaction.executeSql('SELECT * FROM User_data', [], function (tx, results)
{
var len = results.rows.length;
for (var i=0; i<len; i++)
{
var emp = results.rows.item(i);
client_id.push({
id: emp.C_id,
});
}
}, null);
});
ab();
}
function ab(){
console.log(client_id);
}
function onDeviceReady()
{
myDB = window.sqlitePlugin.openDatabase({name: "mydb.db", location: 'default'});
ftr();
}
如果您有任何疑问,请与我们联系。