2012-01-31 68 views
0

我使用SQLite,Javascript和鉻 在我的主網頁(main.html中)脫機工作,我有兩個DIV:<div id="menuLeft">包含的項目列表中的按鈕名稱以編輯每個項目,SQLite:問題與SELECT * FROM Tble在哪裏?

<div id="content"> 

項目名單寫成如下:

<li>ItemName1 
    <div id="idItem1" class="editItem_btn"> 
     <img src="btn_edit.png">` 
    </div> 
</li> 

在main.html中,我有以下代碼:

$("#menuLeft").delegate(".editItem_btn", "click", function(e0) 
    { 
     e0.preventDefault(); 
     var editItemId = $(this).attr("id"); 
     editItemId = parseInt(editItemId); 
     var url="edititem.html" 
     $("#content").load(url,function(){ 
     loadRecord(editItemId);` 
    }); 
}); 

當我點擊某一項目的編輯按鈕,該項目的ID首先來自各地的編輯按鈕的div ID檢索。然後我加載頁面edititem.html內容。如果成功,我運行函數loadRecord(editItemId),其中loadRecord(我)被包含在edititem.html:

function loadRecord(j) 
{ 
    var item = dataset.item(j); 
    idItem.value = item['id']; 
    ItemName.value = item['ItemName']; 
    dateStart.value = item['dateStart']; 
    dateEnd.value = item['dateEnd']; 
    notes.value = item['notes']; 
} 

此功能可以顯示項目的參數(ID,ITEMNAME ....)所含在數據庫中。

這裏是我的問題,代碼工作,但奇怪的是這意味着如果我點擊項目1的編輯按鈕時,顯示項目2的參數。同樣的事情,如果我點擊編輯Item2,Item3的參數顯示。

我再換成:

var item = dataset.item(j); 

有:

var item = dataset.item(j-1); 

和工程。但是我需要理解它爲什麼會這樣,爲什麼我需要使用(j-1)。我把一些警報()的jQuery代碼來檢查我有權利editItemId數量,並在功能loadRecord(J)。在點擊並將正確的身份號碼傳遞給該功能後,檢索正確的身份號碼。我不知道這裏有什麼錯誤!

+0

請多加小心的在你的帖子。 6個月是綽綽有餘的時間來學習如何Markdown格式工作,並有足夠多的時間來注意到,在提交問題之前可以看到預覽窗格。 – 2012-01-31 17:25:45

回答

2

沒有看到事物的SQL方面,而這些數據是如何傳遞迴你的腳本這是不可能確切地告訴你發生了什麼,但是這僅僅是一些列表是基於0的和一些列表是基於1的情況。例如,陣列通常是基於0的(除非您特別創建它們以不同的方式),但$(「#ID」)。每個(函數(指數)...基於1。你只需要知道你在做什麼隨着工作,偶爾做,你已經找到並使用-1或+1時,相關

+0

我的錢就是這個。 – CBusBus 2012-01-31 17:14:49

1

雖然我不熟悉的SQLite的複雜性,我懷疑dataset.item(j)

  • 接受一個0 - 基於索引
  • 您傳遞的record_id(其本身實際上不是數組索引)
  • 並且正在測試的數據集的record_id恰好是索引+1(這意味着你現在正在運氣,並且在下一個數據集被加載時它可能會改變)。

我會檢查是否有dataset.item(j)的等價物,它接受record_id而不是索引。否則,你可能會想保存記錄的索引某處記錄本身要能夠將它傳遞給你的loadRecord功能。

希望這有助於

皮特