· 8 years ago · Jul 14, 2018, 01:18 PM
1import { Component } from '@angular/core';
2import { IonicPage, NavController, NavParams } from 'ionic-angular';
3
4import { SQLite, SQLiteObject } from '@ionic-native/sqlite';
5
6/**
7 * Generated class for the SurveyQuestionsPage page.
8 *
9 * See https://ionicframework.com/docs/components/#navigation for more info on
10 * Ionic pages and navigation.
11 */
12
13@IonicPage()
14@Component({
15 selector: 'page-survey-questions',
16 templateUrl: 'survey-questions.html',
17})
18export class SurveyQuestionsPage {
19
20 questions = [];
21 id : number;
22
23 constructor(public navCtrl: NavController, public navParams: NavParams, private sqlite: SQLite) {
24 this.id = navParams.get('id');
25 console.log("questions id: " + this.id);
26
27 var sql = '';
28 //var sql2 = '';
29 this.sqlite.create({
30 name: 'kwsp.db',
31 location: 'default'
32 }).then((db: SQLiteObject) => {
33 sql = "SELECT * FROM form_data WHERE id = '"+this.id+"' ";
34 db.executeSql(sql, {})
35 .then((res:any) => {
36
37 for (var i =0; i < res.rows.length; i++) {
38 let item = res.rows.item(i);
39 this.htmlentities(this.questions.push({html : item.html, id : item.id }));
40
41 }
42
43 })
44
45 .catch(e => console.log(e));
46
47 }).catch(e => console.log(e));
48 }
49
50
51 navigateToAnotherModule(id) {
52
53 this.navCtrl.push('SurveyEndPage', { id : id });
54 }
55
56 htmlentities(str) {
57 var t = document.createElement('div');
58 t.innerHTML = str;
59 return t.firstChild.nodeValue;
60
61 }
62
63 ionViewDidLoad() {
64 console.log('ionViewDidLoad SurveyQuestionsPage');
65 }
66
67 submitBtn(id){
68 let form_input = document.forms["form_data"].getElementsByTagName("input");
69 let form_data_input = null;
70 let form_data = [];
71 let form_data_name = [];
72 let form_data_value = [];
73 let form_data_json = [];
74 let existed = false;
75
76 for(var i = 0;i < form_input.length; i++)
77 { existed = false;
78 for(var j = 0; j < form_data_name.length; j++){
79 if(form_data_name[j] == form_input[i].name)
80 existed = true;
81 }
82 if(existed == false)
83 form_data_name.push(form_input[i].name);
84
85 /*if(form_input[i].name.startsWith("selectlist_")){
86 radio_input = document.getElementsByName(form_input[i].name);
87 console.log(form_input[i].name + " : " + form_input[i].value + " : " + form_input[i].selectedIndex);
88 } else if(form_input[i].name.startsWith("radio_")){
89 radio_input = document.getElementsByName(form_input[i].name);
90 console.log(form_input[i].id + " : " + form_input[i].name + " : " + form_input[i].value + " : " + form_input[i].checked);
91 } else if(form_input[i].name.startsWith("checkbox_")){
92 radio_input = document.getElementsByName(form_input[i].name);
93 console.log(form_input[i].id + " : " + form_input[i].name + " : " + form_input[i].value + " : " + form_input[i].checked);
94 } else {
95 console.log(form_input[i]);
96 }*/
97 }
98
99 console.log(form_data_name);
100 for(var k = 0; k < form_data_name.length; k++) {
101 let form_data_input_name = form_data_name[k];
102 let form_data_input_value = "";
103 let params : any=[];
104
105 form_data_input = document.getElementsByName(form_data_input_name);
106 for (var l = 0; l < form_data_input.length; l++) {
107 if(form_data_input[l].name.startsWith("checkbox_") || form_data_input[l].name.startsWith("radio_")){
108 if (form_data_input[l].checked) {
109 if(form_data_input_value == "")
110 form_data_input_value = form_data_input[l].value;
111
112 else
113 form_data_input_value = form_data_input_value + "," + form_data_input[l].value;
114 }
115 // form_data_value.push(form_data_input[l].value);
116 }
117 else {
118 form_data_input_value = (form_data_input[l].value);
119 }
120
121 // form_data_value.push(form_data_input_value);
122 }
123 // this.params[form_data_input_name]=form_data_input_value;
124 // console.log(form_data_input_name + " : " + form_data_input_value);
125
126 // console.log("aaaaaaaaaaaaaaaa>>>>>>>>>>>");
127 // console.log(form_data_input_name);
128 // console.log("bbbbbbbbbbbbbbbb>>>>>>>>>>>");
129 // console.log(form_data_input_value);
130
131 form_data_json[form_data_input_name] = form_data_input_value;
132 }
133
134 form_data_json = form_data_json.map(function(e){
135 return JSON.stringify(e);
136 });
137
138 console.log(form_data_json);
139
140
141 var sql = '';
142 //var sql2 = '';
143 this.sqlite.create({
144 name: 'kwsp.db',
145 location: 'default'
146 }).then((db: SQLiteObject) => {
147 sql = 'CREATE TABLE IF NOT EXISTS form_submission(id INTEGER PRIMARY KEY AUTOINCREMENT, form_id INTEGER, submission_date DATETIME, sync_date DATETIME, location VARCHAR(255), data TEXT';
148 db.executeSql(sql, {})
149 .then(res => console.log('Create DB'))
150 .catch(e => console.log(e));
151
152
153 sql = "INSERT INTO form_submission (form_id, submission_date, sync_date, data) VALUES ('"+this.id+"', NOW(), NOW(), "+JSON.stringify(form_data_json)+")";
154 console.log(">>>>>>>>>>>>>>>>>>>>>");
155 console.log(sql);
156 console.log(JSON.stringify(form_data_json));
157 console.log(form_data_json);
158 console.log(">>>>>>>>>>>>>>>>>>>>>");
159 db.executeSql(sql, {})
160 .then(res => console.log('form id: '+ id))
161 .catch(e => console.log(e));
162
163 console.log("data yang ada dalam table form_submission: "+sql);
164
165 sql = 'SELECT * FROM form_submission';
166 db.executeSql(sql, {})
167 .then(res => console.log(id))
168 .catch(e => console.log(e));
169
170 }).catch(e => console.log(e));
171
172 console.log("id bagi set soalan" + id);
173 this.navCtrl.push('SurveyEndPage', { id : id });
174 }
175
176}