2011-05-23 10 views
5

Estoy actualizando los valores de la tabla y luego quiero mostrar los valores actualizados de la tabla en phonegap. Para eso estoy usando el método reload() pero cuando estoy usando este método la tabla no se está actualizando (el código relacionado con la base de datos no se está ejecutando) pero la recarga está sucediendo. ¿Alguien puede ayudarme a cómo mostrar los valores actualizados de la tabla usando la recarga o no usando la recarga ...? Mi código esvolver a cargar la página en el teléfono

function save() 
{ var v=0; 
    //alert("save button"); 
// alert("global :"+global.length); 
    for(var n=0;n<(global.length+l);n++) 
     { 
     //alert("hi"); 
     var x1=$('input.current')[n]; 
     //alert($(x1).val()); 
     if($(x1).val()=="0") 
     { 
     // alert("compare"); 
     var y1=$('input.new')[n]; 
     newaloc[v]=$(y1).val(); 

     //alert(newaloc[v]); 
     v++; 
     } 
    } 
    //var polno=init(); 

    var db = window.openDatabase("DataBase", "3.6.22", "test", 200000); 



    db.transaction(function(transaction) 
       { 

      transaction.executeSql('SELECT * FROM POLICIES_DET WHERE POLICY_NUMBER="'+polno+'";',[], 
       function(transaction, result) 
       { 
        if (result != null && result.rows != null) 
        { 
     //    alert(result.rows.length);     
          for (var i = 0; i < result.rows.length; i++) 
        { 

         var row = result.rows.item(i); 

         // $("#table").append("<tr><td class='fund'>"+row.FUND_DESC+"</td><td><input type='text' class='current' value='"+row.ALLOC_PERCNT+"' size='5' /></td><td><input type='text' class='new' value='"+row.FUND_VALUE+"' size='5' /></td><td><input type='text'class='new' size='5' /></td></tr>");            
    fund=row.INSURED_AMOUNT; 
    //alert(fund); 

         } 

          } 

       },errorHandler); 
      },errorHandler,nullHandler); 
    db.transaction(insert, errorCB, successCB); 

    al//ert("after insert"); 


    //alert("no of records:"+global.length); 
    for(var i=0;i<global.length;i++) 
    { 
var it=$('input.new')[i]; 
var k=$(it).val(); 
    //if(k.length>0) 
    //{ 
    // alert("new allocation loop"); 
     xx.push(k); 
    //alert(xx[v]); 
    v++; 
    // } 
} 
v=0; 
    db.transaction(function(transaction) 
       { 
    // alert("updation"); 
     for(var j=0;j<xx.length;j++) 
     { 
    var c=xx[j]; 
    //alert(c); 
    var g=global[j]; 
    //alert(g); 
    if(c.length>0) 
     { 
    var vl=fund*(c/100); 
    //alert(vl); 
      transaction.executeSql('UPDATE FUND_DET SET ALLOC_PERCNT="'+c+'",FUND_VALUE="'+vl+'"WHERE POLICY_NUMBER="'+polno+'"AND FUND_DESC="'+g+'";',[], 
       function(transaction, result) 
       { 
        if (result != null && result.rows != null) 
        { 
         //alert("Test other way");     
          for (var i = 0; i < result.rows.length; i++) 
        { 
         var row = result.rows.item(i); 

        } 

        } 

       },errorHandler); 
     }} },errorHandler,nullHandler); 

location.reload(); 
     } 

Respuesta

0

Se está trabajando muy bien cuando escribí location .reload() en función como esto

db.transaction(function(transaction) 
      { 
// alert("updation"); 
    for(var j=0;j<xx.length;j++) 
    { 
var c=xx[j]; 
//alert(c); 
var g=global[j]; 
//alert(g); 
if(c.length>0) 
    { 
var vl=fund*(c/100); 
//alert(vl); 
     transaction.executeSql('UPDATE FUND_DET SET ALLOC_PERCNT="'+c+'",FUND_VALUE="'+vl+'"WHERE POLICY_NUMBER="'+polno+'"AND FUND_DESC="'+g+'";',[], 
      function(transaction, result) 
      { 
       if (result != null && result.rows != null) 
       { 
        //alert("Test other way");     
         for (var i = 0; i < result.rows.length; i++) 
       { 
        var row = result.rows.item(i); 

       } 

       } 
      location.reload(); 

      },errorHandler); 
    }} },errorHandler,nullHandler); 

    } 
+0

Esta técnica no funcionó para mí. El evento "deviceready" no se dispara después de llamar a reload. En su lugar, me pareció mejor llamar yo mismo al método de dispositivo en lugar de volver a cargar toda la página. –

0

Prueba este

jQuery.mobile.changePage(nextPage); // nextPage is the page you would like to load 
0

Usted puede utilizar: -

window.location.reload(true); 
Cuestiones relacionadas