1. 程式人生 > >js中請求URL獲得json資料,將資料解析並建表插入

js中請求URL獲得json資料,將資料解析並建表插入

//開啟資料庫
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
//html請求資料
function testXmlHttpRequest() {
var xmlRequest = ajaxFunction();
//獲取IP 埠號
//var uname = document.getElementById('username').value;
//window.alert(xmlRequest);
//2.註冊客戶端的回撥函式
xmlRequest.onreadystatechange = function() {
//3.判斷伺服器響應的狀態值
if(xmlRequest.readyState == 4) {
//獲取伺服器端傳送的資訊
var messageFromServer = xmlRequest.responseText;
document.getElementById('displayUsername').innerHTML =
"<font color='red'>" + messageFromServer + "</font>";


//var obj = new Function("return" + messageFromServer)(); //轉換後的JSON物件
var objxx = {
user_db: [{
id: '001',
loginname: 'yang',
cname: 'yangsi',
password: 'yang123'
}, {
id: '002',
loginname: 'zhang',
cname: 'zhangsi',
password: 'zhang123'
}],
member_db: [{
a: '001',
b: 'zhang',
c: '花火',
d: 'zhang123'
}, {
a: '001',
b: 'zhang',
c: '二月紅',
d: 'zhang123'
}]
};


//json字串的解析
//var show = obj.data.upload;
//document.getElementById('displayData').innerHTML =
//"<font color='red'>" + show + "</font>";
//for(var i = 0; i < 10; i++) { //模擬多條json資料
////假資料
//var id = "001";
//var loginname = "yang";
//var cname = "楊博偉";
//var password = "yang123";
//
////插入資料
//
//db.transaction(function(tx) {
//tx.executeSql('CREATE TABLE IF NOT EXISTS user_db (id text,loginname text,cname text,password text)');
//tx.executeSql('insert into user_db values(?,?,?,?)', [id, loginname, cname, password]);
//});
//
//}
parseJsonaddtable(objxx); //將資料解析並建表插入
//讀一張使用者表資料,form顯示
var list = document.getElementById("list");
db.transaction(function(tx) {
//如果資料表不存在,則建立資料表 
tx.executeSql('create table if not exists user_db(id text,loginname text,cname text,password text)', []);
//查詢所有聯絡人記錄 
tx.executeSql('select * from user_db order by id desc', [], function(tx, rs) {
if(rs.rows.length > 0) {
var result = "<table>";
result += "<tr><th>序號</th><th>ID</th><th>登入名</th><th>巡檢人</th><th>密碼</th></tr>";
for(var i = 0; i < rs.rows.length; i++) {
var row = rs.rows.item(i);


//拼裝一個表格的行節點 
result += "<tr><td>" + (i + 1) + "</td><td>" + row.id + "</td><td>" + row.loginname + "</td><td>" + row.cname + "</td><td>" + row.password + "</td></tr>";
}
list.innerHTML = result;
} else {
list.innerHTML = "新增聯絡人";
}
});
});


}
}
//4.open方法指定請求伺服器的url地址,拼接IP,埠號
var url = "http://server.jeasonlzy.com/OkHttpUtils/upload";


xmlRequest.open("GET", url, true);
//5.傳送
xmlRequest.send(null);
}


function parseJsonaddtable(objxx) {
for(var key in objxx) { //一級鍵
//key 資料表名
var tablename = key;
var str1 = "";
var str2 = "";
var jsonarr = objxx[key]; //json物件[]
for(var index in jsonarr) {
var sqlstr1 = "";
var sqlstr2 = "";
var subjson = jsonarr[index]; //json資料的具體一個json物件


var num = 0;
var key_values = new Array();
for(var key in subjson) {
//遍歷物件鍵
//key 物件的每一個鍵
//var subkey = key;


key_values[num] = subjson[key]; //物件的每一個鍵對應的值
num = num + 1;
//xuyaoqu掉逗號
sqlstr1 = sqlstr1 + key + " text,";
sqlstr2 = sqlstr2 + "?,";


}
//' (name text,phone text,company text,createtime INTEGER)'
//去逗號sqlstr1 sqlstr2
str1 = sqlstr1.substring(0, sqlstr1.length - 1);
sqlstr1 = "";
str2 = sqlstr2.substring(0, sqlstr2.length - 1);
sqlstr2 = "";
//插入表資料


//alert('create table if not exists ' + tablename + '(' + str1 + ')');
//alert('insert into ' + tablename + ' values(' + str2 + ')' + ',' + key_values.toString());
db.transaction(function(tx) { //如果資料表不存在,則建立資料表 

tx.executeSql('CREATE TABLE IF NOT EXISTS ' +tablename+ ' (' + str1 + ')');
tx.executeSql('insert into ' + tablename + ' values(' + str2 + ')', key_values);

});
str1 = "";
str2 = "";
}


}
}


//1.建立XmlHttpRequest物件(瀏覽器不同則建立的方法不同)
function ajaxFunction() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest();
} catch(e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
alert("您的瀏覽器不支援AJAX!");
return false;
}
}
}
return xmlHttp;
}
//登入驗證
//獲取輸入值
//分別在資料庫查詢條件查詢,返回結果results不為空


/*function gotonewye() {
window.location.href = "index01.html";
}*/


function isOkmethod() {


var Usename = document.getElementById("usenames").value;
var PassWord = document.getElementById("passwords").value;


db.transaction(function(tx) {


//如果資料表不存在,則建立資料表 
tx.executeSql('create table if not exists user_db(id text,loginname text,cname text,password text)', []);
//查詢所有聯絡人記錄 
tx.executeSql('select * from user_db where loginname=? and password=?', [Usename, PassWord], function(tx, rs) {
var len = rs.rows.length;
if(len > 0) {
alert("驗證成功!");
window.location.href = "menu.html";
} else {
alert("驗證失敗!");
window.location.href = "loginError.html";
}
});
});


}