0
我正在嘗試編寫一個Javascript函數,它從sqlite數據庫中獲取一個唯一id數組&然後將它們傳遞給另一個函數,其中的id可以在另一個SQL查詢中使用,它們也構成動態創建列表的一部分。將Javascript變量從一個函數傳遞到另一個函數以用於sqlite查詢
我已經設法將ids行['id']傳遞給數組變量window.symp [i]。但是我在下面的第二個函數中無法正確訪問它們,第二個函數正確地使用id來創建動態html,但傳遞給sqlite查詢的變量要麼失敗,要麼在創建的所有列表項中都是相同的值。任何幫助將不勝感激 - 我已經包含了以下兩個功能:
function showContent() {
db.transaction(function (tx) {
tx.executeSql("SELECT id, notes FROM webkit WHERE notes LIKE 'A%'", [], function (tx, result) {
var notesanode = document.getElementById('notesa');
notesanode.innerHTML = "";
for (var i = 0; i < result.rows.length; ++i) {
var row = result.rows.item(i);
window.symp[i] = i;
window.symp[i] = row['id'];
var noteadiv = document.createElement('div');
noteadiv.innerHTML = '<li class=\"arrow\"><a id=\"0\" onClick=\"showSymptoms()\" href=\"#symptoms\">' + row['notes'] + " " + row['id'] + '</a></li>';
notesanode.appendChild(noteadiv);
}
}, function (tx, error) {
alert('Failed to retrieve notes from database - ' + error.message);
return;
});
});
}
function showSymptoms() {
db.transaction(function (tx) {
tx.executeSql("SELECT sid, symptom FROM slinks WHERE id LIKE ('" + symp + "')", [], function (tx, result) {
var symptomnode = document.getElementById('symptomid');
symptomnode.innerHTML = "";
for (var i = 0; i < result.rows.length; ++i) {
var row = result.rows.item(i);
var symptomdiv = document.createElement('div');
symptomdiv.innerHTML = '<p><label> <input type=checkbox>' + row['symptom'] + '</label></p>';
symptomnode.appendChild(symptomdiv);
}
}, function (tx, error) {
alert('Failed to retrieve notes from database - ' + error.message);
return;
});
});
}
如果在select語句中使用'window.symp.join(',')'會發生什麼? – 2011-05-13 13:16:19
嗨,對不起,但沒有動態創建,因爲當我測試它時,變量window.symp包含所有正確的ID,但由於某種原因,我仍然無法在第二個函數select語句中單獨訪問它們。建議我已經刪除了window.symp [i] = i;這很好。任何進一步的投入將不勝感激。 – Derek 2011-05-13 08:07:48
當我將window.symp.join(',')添加到select語句時,頁面加載時沒有結果,當我測試變量symp時,它與之前保持完全相同的數組。 – Derek 2011-05-13 18:39:52