2013-03-29 20 views
6

Uzak bir veritabanının kullanımına büyük ölçüde bağlı olacak bir Android uygulaması geliştiren bir ekipteyim. PhoneGap ve Jquery Mobile kullanıyoruz ve AJAX ve JSON çağrılarını kullanarak MySQL veritabanımıza bağlanmaya çalışıyoruz. Şu anda test fazımızda sorun yaşıyoruz, bu da MySQL Workbench üzerinden mySQL/input'dan kodlanmış bir "Ted" kullanıcısını çekerek bile bir bağlantımız olduğunu doğrulamaktır. elimizdeki kadarıylaPhoneGap, AJAX ve JQuery Mobile kullanarak bir MySQL veritabanına bağlanma

, veri iletimi süreci bu şekilde çalışır:

bizim html dosyası üzerinde
  1. , elimizdeki Connect.js komut dosyasını çalıştırmak gereken bir

    <script type="text/javascript" src="Connect.js"></script> 
    

    ^Hangi , doğru mu? Yani oradan, Connect.js koştu mu?

  2. Connect.js, harici bir web hizmetinde barındırılan ve MySQL veritabanına bağlanmak ve bilgi almak için PHP'yi çalıştırmasına izin veren ServerFile.php sunucumuza bağlayarak çalışır. İşte

    //run the following code whenever a new pseudo-page is created 
    $('#PAGENAME').live('pageshow', function(event)) { 
    
        // cache this page for later use (inside the AJAX function) 
        var $this = $(this); 
    
        // make an AJAX call to your PHP script 
        $.getJSON('http://www.WEBSITENAME.com/ServerFile.php', function (response) { 
    
         // create a variable to hold the parsed output from the server 
         var output = []; 
    
         // if the PHP script returned a success 
         if (response.status == 'success') { 
    
          // iterate through the response rows 
          for (var key in response.items) { 
    
    
           // add each response row to the output variable 
           output.push('<li>' + response.items[key] + '</li>'); 
          } 
    
         // if the PHP script returned an error 
         } else { 
    
          // output an error message 
          output.push('<li>No Data Found</li>'); 
         } 
    
         // append the output to the `data-role="content"` div on this page as a 
         // listview and trigger the `create` event on its parent to style the 
         // listview 
         $this.children('[data-role="content"]').append('<ul data-role="listview">' + output.join('') + '</ul>').trigger('create'); 
        }); 
    }); 
    

ServerFile.php olduğunu. Bu MySQL Veritabanına bağlanmalı, Select deyimini yapmalı ve daha sonra çıktıyı JSON formatında kodlanmış tarayıcıya göndermelidir. Yine de burada hiçbir şey gösterilmemektedir. Buradan ne yapacağız?

+0

Kodda sorunun nerede olduğunu belirlemek için herhangi bir hata ayıklama işlemi yaptınız mı? Echo json_encode (array ('status' => 'success')); SQL Server ile bir yere boğulma sorunu olup olmadığını görmek için ServerFile.php açılışında, ya da geri geliyor ne okuma ile ilgili bir sorun. –

+1

Veya hata ayıklamanın başka bir yolu, $ .getJSON işlevinin içinde '' console.log (yanıtı) koymak olabilir. Yanıt, Firebug'ınızda görünecektir. –

cevap

2

İlk şey ilk. Sorunun nereden geldiğini, sunucu tarafını veya istemci tarafını belirlemeye çalışın.

Veritabanı sorgunuzu yazdırın ve kodlanmış json yararlı olabilir. Basit bir API hizmeti oluşturuyorsanız, tarayıcınızı kullanarak http://www.WEBSITENAME.com/ServerFile.php girebilmeniz ve çıkışın nasıl olduğuna bakmanız gerekir.

Öğeleri php ile yazdırmak için echo kullanın.

Her şey yolunda giderse, javascript'te sunucudan aldığınız yanıtı yazdırmak için zamanı bekleyin ve neyin kapalı olduğunu görün.

javascript ile bir şey yazdırmak için console.log dosyasını kullanın. Kayıtlar tutulma işleminin logcat bölümünde görünmelidir (android uygulaması geliştirdiğiniz için)

İlgili konular