2016-09-08 13 views
-1

ここでは、サーバーからの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

あなたはさらに私たちが問題であることを理解するのを助けるように新しい投稿をしてください – Zeeshan

答えて

0

最初に私はあなたのケースの変数client_idにアクセスしようとしていることを伝えなければなりません。スコープがそのftr()内にあるだけです。

アクセスするにはグローバルに定義する必要があります。また、一度に複数の値を取得するので、配列として定義する必要があります。 コードはこのようになります。

はまた、あなたが延期jQueryを使って行くか、単に

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();   
} 

レッツ以下のようftr()ab()を呼び出すことができ、ab()出力はftr() result.Soに依存しているとして実行を終了さftr()ab()機能を呼び出す必要がありますあなたは何か質問があるなら私は知っている。

+0

thaknx..it worked ...しかし、私はもう一つ質問があります。どのようにサーバー上で送信されたデータが間違っているかを確認する方法です。上記で更新されたエラーmsg..codeを印刷することはできません。 – Sawan

+0

回答が受け入れられた場合は....また、問題 – Zeeshan

0

機能の公衆その変数外を簡単に

このような
public yourVariable; 
0

また、関数の変数OUTSIDEを定義しようとし、その関数へのパラメータとして渡すことができます。

このようにして、値を割り当てて他の場所で使用することができます。

関連する問題