2014-09-08 2 views
0

Я создал форму для вставки данных из текстового поля в базу данных, и когда я запустил ее в браузере, я вижу, что таблица создана и значения вставлены.значения, не вставляемые в базу данных sqlite с использованием cordova

Я попытался реализации того же с помощью Cordova и таблицы получения создаются и значения не будут вставлены ..

Вот мой кодирующая ..

document.addEventListener("deviceready", function() 
{ 
var db=window.sqlitePlugin.openDatabase({name : "mydb"}); 
var createStatement = "CREATE TABLE IF NOT EXISTS login(id INTEGER PRIMARY KEY AUTOINCREMENT,username  TEXT,password TEXT,firstname TEXT, lastname TEXT,hobby TEXT,email TEXT)"; 
var insertStatement = " INSERT INTO login(username,password,firstname,lastname,hobby,email) VALUES (?,?,?,?,?,?) "; 
function initDatabase() // Function Call When Page is ready. 

{ 

try { 

    if (!window.openDatabase) // Check browser is supported SQLite or not. 

    { 

     // alert('Databases are not supported in this browser.'); 

    } 

    else { 

     createTable(); // If supported then call Function for create table in SQLite 

    } 

} 

catch (e) { 

    if (e == 2) { 

     // Version number mismatch. 

     console.log("Invalid database version."); 

    } else { 

     console.log("Unknown error " + e + "."); 

    } 

    return; 

    } 

    } 


    function createTable() // Function Call When Page is ready. 

    { 


    var res=db.transaction(function (tx) { tx.executeSql(createStatement, [], onError); }); 

    alert("Successfully created the table"); 

    } 
    function onError(tx, error) // Function for Hendeling Error... 

    { 

// alert(error.message); 

    } 
    }); 
    document.addEventListener("deviceready", function() 
    { 
    var db=window.sqlitePlugin.openDatabase({name : "mydb"});   

    function insertRecord() 
    { 
    var usernameold = $('input:text[id=username]').val(); 

    var passwordold = $('input:password[id=pass]').val(); 

    var firstnameold = $('input:text[id=firstname]').val(); 

    var lastnameold = $('input:text[id=lastname]').val(); 

    var hobbyold = $('input:text[id=hobby]').val(); 

    var emailold = $('input:text[id=email]').val(); 

    db.transaction(function (tx) { tx.executeSql(insertStatement,  [usernameold,passwordold,firstnameold, lastnameold,hobbyold,emailold]/*,loadAndReset, onError*/) }); 

    alert("Successfully created the table"); 
    } 
    }); 

    $(document).ready(function() 
    { 
    initDatabase(); 
    $("#submit").click(insertRecord); 
    }); 

Пытались сохранить и импортировать базу данных из fileexprorer-> data-> data-> projectpackage-> databases-> mydb.db

затем firefox-> sqlitemanager-> co nnectdb

я могу видеть, таблица получения создаются и значения не вставляя Plz помочь ...

+0

ваш стол Логин или нет? а также сначала попробуйте как это http://docs.phonegap.com/en/2.9.0/cordova_storage_storage.md.html#Storage – Aravin

+0

Да, таблица входа в систему создана – Manikandan

+0

, можете ли вы объяснить структуру кода. – Aravin

ответ

1

можно вставить значения:

db.transaction(function (tx) 
    { 
    tx.executeSql('INSERT INTO login (username,pass,firstname,lastname,hobby,email)VALUES("'+un+'","'+ps+'","'+fs+'","'+ls+'","'+hb+'","'+ed+'")'); 

    }); 
    }); 
    } 

Где создается

var un= $("#username").val(); 

    var ps= $("#pass").val(); 

    var fs = $('input:text[id=firstname]').val(); 

    var ls = $('input:text[id=lastname]').val(); 

    var hb = $('input:text[id=hobby]').val(); 

    var ed = $('input:text[id=email]').val(); 
0

http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html проверка выше ссылку для запросов хранения БД. Попробуйте использовать нижеследующий код. Надеюсь, что это поможет вам.

 <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Untitled Document</title> 
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script> 

    <script type="text/javascript" charset="utf-8">  
     document.addEventListener("deviceready", onDeviceReady, false);  
     var nameval,pwdval,fnameval,lnameval,hobbyval,emailval; 

function onDeviceReady() {   
    var db = window.openDatabase("Logindetails_DB", "1.0", "Logindetails_DB", 100000);  
    db.transaction(populateDB, errorCB, successCB); 
} 

function validationCheck(){ 
    nameval=document.getElementById('u_name').value; 
    pwdval=document.getElementById('u_pwd').value; 
    fnameval=document.getElementById('u_firstname').value; 
    lnameval=document.getElementById('u_lastname').value; 
    hobbyval=document.getElementById('u_hobby').value; 
    emailval=document.getElementById('u_email').value; 
      if(document.getElementById('u_name').value==""){ 
        alert('Enter Your Name');      
      } 
      if(document.getElementById('u_pwd').value==""){ 
       alert('Enter Your Password');     
      } 
      if(document.getElementById('u_firstname').value==""){ 
        alert('Enter Your FirstName');      
      } 
      if(document.getElementById('u_lastname').value==""){ 
        alert('Enter Your LastName');      
      } 
      if(document.getElementById('u_hobby').value==""){ 
        alert('Enter Your HobbyName');      
      } 
      if(document.getElementById('u_email').value==""){ 
        alert('Enter Your Email');      
      }   
      if(nameval!='' && pwdval!='' && fnameval!='' && lnameval!='' && hobbyval!='' && emailval!=''){ 
      alert('Name'+nameval+'Pwd'+pwdval);      
        Insertvalue();      
       } 

} 

function Insertvalue(){ 
     var db = window.openDatabase("Logindetails_DB", "1.0", "Logindetails_DB", 100000); 
     db.transaction(getregistdata, transaction_error);       
    } 
     function getregistdata(tx){ 
      tx.executeSql('INSERT INTO login (username, password, firstname,lastname,hobby,email) VALUES ("'+nameval+'", "'+pwdval+'","'+fnameval+'","'+lnameval+'","'+hobbyval+'","'+emailval+'")'); 
         alert('Record Inserted Successfully'); 
       } 

     function transaction_error(tx, error) { 
     alert("Database Error: " + error); 
     }   


// Populate the database 

    function populateDB(tx) {  
      tx.executeSql('CREATE TABLE IF NOT EXISTS login(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL, password TEXT NOT NULL, firstname TEXT NOT NULL,lastname TEXT NOT NULL,hobby TEXT NOT NULL,email TEXT NOT NULL)');    

    } 
    // Transaction error callback 
// 
function errorCB(tx, err) { 
    alert("Error processing SQL: "+err); 
} 

// Transaction success callback 
// 
function successCB() { 
    alert("success!"); 

} 
</script> 
</head> 
<body> 

    <h1>Hello PhoneGap</h1> 
    <form name="form1" id="form1" method="post"> 
     User Name: <br><input type="text" name="u_name" id="u_name"><br><br> 
     Password:<br><input type="text" name="u_pwd" id="u_pwd"><br><br> 
     First Name<br> <input type="text" name="u_firstname" id="u_firstname"><br><br> 
     Last Name<br> <input type="text" name="u_lastname" id="u_lastname"><br><br> 
     Hobby<br> <input type="text" name="u_hobby" id="u_hobby"><br><br> 
     Email<br> <input type="text" name="u_email" id="u_email"><br><br> 
    <div style="text-align:center;"> 
     <input type="button" name="submitbtn" id="submitbtn" value="Submit" onclick="validationCheck()"> 
    </div> 
    </form> 

    </body> 
    </html> 
+0

Но я использую sqlplugin для этого. Не будем ли использовать эту window.sqlitePlugin.openDatabase? – Manikandan

+0

Извините, попробовал это, но все еще не работал. – Manikandan

+0

извините, я не пробовал с помощью плагина sqlite, я пробовал на основе документов телефонной заставки. Вы вызвали функцию insertRecord() в форме кнопки onclick. проверьте, будет ли u r получать значение на var usernameold.did u, чтобы вы указали свои значения usernameold и все. – Nathiya

Смежные вопросы