Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 1.72 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Bind and scope in javascript
  2. var q1 = function( table, column, where ) {
  3.     sql = "SELECT " + column + " from " + table;
  4.     r = "";
  5.     if (where != undefined)
  6.         sql += " WHERE " + where;
  7.     db.transaction( function(tx) {
  8.         tx.executeSql( sql, [], function( tx, results) {
  9.             r = results.rows.item(0)[column] ;
  10.             console.log(r + " 1 "); //1
  11.             }, errorHandler );
  12.     });
  13.     console.log(r  + " 2 "); //2
  14.     return r;
  15. }
  16.  
  17. window.addEvent('domready', function() {
  18.     db.transaction( function (tx) {
  19.         tx.executeSql( 'DROP TABLE IF EXISTS nutzer' );
  20.         tx.executeSql( "CREATE TABLE IF NOT EXISTS nutzer ( "
  21.             + " id integer not null primary key, "
  22.             + " name text not null default '(unbekannt)', "
  23.             + " jahre integer not null default 0, "
  24.             + " gewicht integer not null default 0)"
  25.         );
  26.         var params = [1,'der Name',10,30];
  27.         tx.executeSql( "INSERT OR IGNORE INTO nutzer (id,name,jahre,gewicht) values (?,?,?,?)", params);
  28.     });
  29.     console.log( q1('nutzer', 'name' ) + " 3 "); //3
  30. })
  31.        
  32. 2
  33. 3
  34. der Name 1
  35.        
  36. var q1 = function( table, column, where, callback ) {
  37.     //                                   ^ callbacks
  38.     sql = "SELECT " + column + " from " + table;
  39.     r = "";
  40.     if (where != undefined)
  41.         sql += " WHERE " + where;
  42.     db.transaction( function(tx) {
  43.         tx.executeSql( sql, [], function( tx, results) {
  44.             r = results.rows.item(0)[column] ;
  45.             console.log(r + " 2 "); //2
  46.             callback(r);
  47.             // pass r back
  48.             }, errorHandler );
  49.     });
  50.     console.log(r  + " 1 "); //1
  51.     return r;
  52. }
  53.  
  54. q1('nutzer', 'name', function (r) {
  55.     console.log( r + " 3 "); // results!
  56. });