开发者

display web sql results to html<li>

I have created a web sql using sqlite to create a database using javascript and I want the results to be displayed onto another html page inside the list items tag. How can I achieve this? I am using jquery and phonegap as I am developing a mobile app.

    // Populate the database 
//
function populateDB(tx) {
    tx.executeSql('DROP TABLE IF EXISTS DEMO');
    tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}

// Query the database
//
function queryDB(tx) {
    tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}

// Query the success callback
//
function querySuccess(tx, results) {
    var len = results.rows.length;
    console.log("DEMO table: " + len + " rows found.");
    for (var i=0; i<len; i++){
        console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " +      results.rows.item(i).data); 
//the data fr开发者_StackOverflow社区om here to the html page.
    }
}

// Transaction error callback
//
function errorCB(err) {
    console.log("Error processing SQL: "+err.code);
}

// Transaction success callback
//
function successCB() {
    var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
    db.transaction(queryDB, errorCB);
}

html page:

<div data-role="content" class="ui-content" role="main">
<div id="wrapper" >
    <div id="scroller" >
        <ul data-role="listview" data-theme="c" class="ui-btn-inset">

            <li>would like to put it inside here</li>
        </ul>
    </div>
</div>

Is it possible to include a link with it? Also is Ajax needed for this?

Thanks.


var ul = document.getElementById("scroller").getElementsByTagName("UL")[0];
for (var i=0; i<len; i++){
    var str = "Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " +      results.rows.item(i).data;
    str = str.replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/'/g, "&apos;").replace(/"/g, "&quot;"); // entity encode
    ul.innerHTML += "<li>" + str + "</li>";
}

Here's a quick solution. You just append LI tags to the inner HTML of the UL.


Here is a simplified example:

//Replace the title with the first row
document.title = ("Row = " + 0 + " ID = " + results.rows.item(0).id + " Data =  " +      results.rows.item(0).data);

//Append the rest of the rows to the title
for (var i=1; i<len; i++)
  {
  document.title += ("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " +      results.rows.item(i).data); 
  }

//Copy the result to the specified element
document.querySelector("#scroller li").innerHTML("<pre>"+document.title+"</pre>");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜