Здесь я не уверен, почему функция ошибки не работает, если Cid, поступающий с сервера, неверен. Я получаю Cid из базы данных сервера и передаю этот 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'); 
                        });
                    });
                }
            });
        }   
    });
-1
Sawan 8 Сен 2016 в 11:08

3 ответа

Лучший ответ

Прежде всего я должен сказать, что вы пытаетесь получить доступ к переменной, в вашем случае это client_id, область действия которой находится только в пределах этой ftr ().

Таким образом, вам нужно определить его глобально, чтобы получить к нему доступ, также вам необходимо определить его как массив, поскольку вы получаете несколько значений за раз, поэтому вам нужно вставить это. Ваш код будет примерно таким.

Также вам необходимо вызвать функцию ab() после завершения выполнения ftr(), поскольку вывод ab() зависит от результата ftr(). Таким образом, вы можете использовать отложенный JQuery или просто вызвать { {X4}} в пределах 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();        
}

Дайте мне знать, если у вас возникнут вопросы.

0
Zeeshan 8 Сен 2016 в 08:30

Вы также можете попробовать определить переменную OUTSIDE функции, а затем передать ее в качестве параметра функции.

Таким образом, ему можно присвоить значение и использовать в другом месте.

0
GaaTY 8 Сен 2016 в 08:14

Сделайте эту переменную общедоступной вне функции, как это

public yourVariable;
0
Vishal Senjaliya 8 Сен 2016 в 08:11