XML을 통해 Ajax 호출에서 뉴스 데이터를 가져 오는 작은 Phonegap 애플리케이션을 만들었습니다. 이 잘 작동하지만 데이터베이스 테이블에있는 데이터를 오프라인으로 읽을 수 있도록 데이터를 저장하고 싶습니다.루프를 사용하여 sqlite 데이터베이스에 행 추가 (Phonegap)
그래서 Ajax 콜백이 데이터를 순환 할 때 전역 뉴스 객체를 채운 다음 함수가 호출되어 데이터가 이미 데이터베이스에 저장되어 있는지 확인합니다. 그렇지 않은 경우 데이터베이스 뉴스 테이블에 삽입해야합니다.
이Uncaught TypeError: Cannot read property 'title' of undefined in ...
그래서 어떻게 있는지 확인 할 수 있습니다
문제는 트랜잭션에서 테이블에 뉴스를 저장하는 것입니다, 내가 메시지를 얻을 수 있기 때문에 내 뉴스 개체가 더 이상 존재하지 않는 것 같다 이 일? 나는 뉴스를 선택하고 이미이 있는지 확인하려는 다음 부분의 코드는 다음 newsContainer 데이터의 몇 행으로 가득
// Check if a news from the internet already exists in the database; If not, insert it
function checkNewsInDB(){
db.transaction(function(tx){
tx.executeSql("SELECT * FROM NEWS", [], checkSuccess, dbErrorCB);
}, dbErrorCB, dbSuccessCB);
}
// Result Callback from the News Check
function checkSuccess(ctx, result){
var len = result.rows.length;
var found = false;
for(var n = 0; n < newsContainer.length; n++){
for(var r = 0; r < len; r++){
if(result.rows.item(r).n_title == newsContainer[n].title
&& result.rows.item(r).n_pubdate == newsContainer[n].pubdate){
found = r;
}
}
if(found == false){
db.transaction(function(tx){
tx.executeSql("INSERT INTO NEWS (n_title, n_link, n_creator, n_pubdate, n_description) VALUES (?,?,?,?,?)", [newsContainer[n].title, newsContainer[n].link, newsContainer[n].creator, newsContainer[n].pubdate, newsContainer[n].description], insertSuccess, dbErrorCB);
}, dbErrorCB, dbSuccessCB);
} else {
found = false;
}
}
}
을, 나는 그것을 확인했다. 누군가가 왜 이것이 효과가 없는지 이해할 수 있으면 매우 행복 할 것입니다.
미리 감사드립니다.
인사말,
번드
예제 코드를 보내 주시겠습니까? 아직 이해할 수 없습니까? –