tableView заполнен информацией базы данных - PullRequest
1 голос
/ 20 января 2012

Я создаю приложение calander для Android в appcelerator, но сейчас у меня возникают некоторые проблемы с получением информации из базы данных в tableView. Я новичок в appcelerator и у меня есть несколько вопросов.

Я создал несколько таблиц в SQL, которые я получаю с помощью PHP-скрипта. Но теперь, когда я пытаюсь получить эту информацию из моей базы данных в моем приложении, что-то идет не так. Можно ли сделать так, используя скрипт php, или я должен использовать что-то еще? (Если вы перейдете по ссылке, вы увидите скрипт php, который создает xml. Я, вероятно, изменю его, чтобы событие отображалось по дате: 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();

Итак, когда я запускаю это в эмуляторе Android, я получаю исключение: «Не удается найти функцию gebeurtenis в объекте [Ti.NodeList]». Кто-нибудь знает, как я могу решить эту проблему?

А также: каков наилучший способ передачи информации из базы данных и в нее? Лучше всего использовать httpClient (xhr) или SQLite? Если я понимаю, SQLite используется для хранения на устройстве (например, в настройках или в моем случае, когда кто-то хочет получить уведомление о предстоящем событии), а httpClient используется для RSS. Можете ли вы дать мне другие примеры для httpClient?

Спасибо!

1 Ответ

0 голосов
/ 22 января 2012

опять решил.Я изменил эти строки:

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;
...