Я создаю приложение 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?
Благодарю!
снова решил. Я изменил эти строки:
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;