2012-01-20 2 views
1

appcelerator에서 Android 용 캘린더 응용 프로그램을 만들고 있지만 지금은 데이터베이스에서 tableView로 정보를 가져 오는 데 문제가 있습니다. 나는 appcelerator에 새로운 질문이 있습니다.tableView에 데이터베이스 정보가 가득했습니다

나는 php 스크립트를 가지고있는 sql 테이블을 만들었습니다. 하지만 이제는 내 앱에서 데이터베이스의 정보를 얻으려고하고 있는데, 문제가 발생합니다. PHP 스크립트를 사용하는 것이 가능합니까? 아니면 다른 것을 사용해야합니까? (링크를 방문하면 xml을 생성하는 PHP 스크립트를 볼 수 있습니다. 2012/1/2 GFT, Restafval, PMD, 2012/1/17 papier en karton; 등)

var win = Titanium.UI.currentWindow; 

var data = []; 

var xhr = Ti.Network.createHTTPClient(); 
xhr.open('GET', 'http://www.dehertoghnathalie2011.dreamhosters.com/titanium/kalender.php'); 

xhr.onload = function(){ 
    try 
    { 
     var doc = this.responseXML.documentElement; 
     var items = doc.getElementsByTagName('gebeurtenis'); 
     var x = 0; 

     for(var i = 0; i<items.length; i++) 
     { 
      var afhaaldag = items.gebeurtenis(i); 
      var datum = gebeurtenis.getElementsByTagName('datum').gebeurtenis(0).text; 
      var afval = gebeurtenis.getElementsByTagName('afval').gebeurtenis(0).text; 

      var row = Ti.UI.createTableViewRow({height:80}); 
      var labelText = datum; 

      var label = Ti.UI.createLabel({ 
       text:labelText, 
       color:'black', 
       textAlign:'left' 
      }); 
      row.add(label); 

      data[x++] = row; 
     } 
    } 

    catch(E) 
    { 
     alert(E); 
    } 

    var table = Ti.UI.createTableView({data:data}); 
    win.add(table); 
} 

xhr.send(); 

그래서 나는 이것이 내가 예외를 받고 있어요 안드로이드 에뮬레이터에서 실행하면 ". 객체 [Ti.NodeList]의 기능 gebeurtenis를 찾을 수 없습니다" 아무도 내가 이것을 해결할 수있는 방법을 알고 있습니까?

또한 데이터베이스에서 정보를주고받는 가장 좋은 방법은 무엇입니까? httpClient (xhr) 또는 SQLite를 사용하는 것이 가장 좋습니까? 내가 이해한다면, SQLite는 장치의 저장 공간 (예를 들어, 환경 설정이나 내 사건에 대한 알림을 받고 싶을 때)에 사용되며 RSS 클라이언트에는 httpClient가 사용됩니다. httpClient에 대한 다른 예제를 제공 할 수 있습니까?

감사합니다.

답변

0

가 다시 해결되었습니다.

var afhaaldag = items.gebeurtenis(i); 
var datum = gebeurtenis.getElementsByTagName('datum').gebeurtenis(0).text; 
var afval = gebeurtenis.getElementsByTagName('afval').gebeurtenis(0).text; 

var item = items.item(i); 
var datum = item.getElementsByTagName('datum').item(0).text; 
var afval = item.getElementsByTagName('afval').item(0).text; 

에 : 나는이 라인을 변경