Update: Ik boek inmiddels wat vooruitgang. Hierbij de nieuwe code. Het is nog niet erg netjes dus work in progress, maar het doet wat ik wil. Ik zal de code hier af en toe bijwerken.
Origineel bericht:Ik ben nu al een paar dagen bezig, maar ik krijg het niet werkend. Normaal zou ik dit doen met PHP, maar ik wil dat het ook offline werkt. Vandaar dat ik ben overgestapt naar Javascript, maar dat beheers ik helaas niet goed genoeg.
Wat ik wil maken is het volgende:
Een webpagina met één invoerveld en één verzendknop.
Het is de bedoeling dat de gebruiker zijn e-mail adres op kan geven en kan versturen. Na een klik op de knop wordt er gekeken of het xml document al bestaat. Zo niet, wordt het document gemaakt. Indien wel, wordt het e-mail adres bijschreven.
Ik zou graag willen dat dit offline werkt omdat ik het dan op mijn tablet kan gebruiken zonder internet (dus beveiligingsgevaren zijn niet aan de orde).
Ik heb een mooie werkende code gevonden. Echter is deze te uitgebreid (teveel invoervelden e.d.) dus probeer ik deze aan te passen. Maar elke keer als ik dat doe werkt het script niet meer...
Ik ben geen programmeur, maar vind het erg leuk om dit soort zaken te leren. Wie kan mij helpen?
Voor de volledigheid, hier de gevonden code. Een simpelere en kortere code heb ik helaas niet kunnen vinden.
Edit: Voor de leesbaarheid de originele code weggehaald. Mocht je deze willen lezen, dan kan je die vinden onder aan de volgende pagina.
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Aanmelden</title> <script type="text/javascript" language="javascript"> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); var fso = new ActiveXObject("Scripting.FileSystemObject"); var FILENAME='d:\Aanmeldingen.xml'; function SaveXMLData() { validations(); } function createfile() { var file; var em1=document.getElementById('Email').value; var tablemain = document.getElementById('tblmain'); if(fso.fileExists(FILENAME)) { xmlDoc.load(FILENAME); var lng; lng=xmlDoc.getElementsByTagName("Details"); var xmlread= fso.OpenTextFile(FILENAME,1,true,0); var x=xmlread.readAll(); var replace=x.replace('</OEL>',''); var sno=lng.length + 1; file=fso.OpenTextFile(FILENAME,2,true); file.writeLine(replace); file.WriteLine('<Details category="'+sno+'">'); file.WriteLine('<SNo>'+sno+'</SNo>'); file.WriteLine('<E-mail>'+em1+'</E-mail>'); file.WriteLine('</Details>'); file.WriteLine('</OEL>'); alert('Update: Uw aanmelding is verwerkt!'); } else { file= fso.CreateTextFile(FILENAME, true); file.WriteLine('<?xml version="1.0" encoding="utf-8" ?>'); file.WriteLine('<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>'); file.WriteLine('<OEL>'); file.WriteLine('<Details category="1">'); file.WriteLine('<SNo>'+1+'</SNo>'); file.WriteLine('<E-mail>'+em1+'</E-mail>'); file.WriteLine('</Details>'); file.WriteLine('</OEL>'); alert('Nieuw: Uw aanmelding is verwerkt!'); } <!-- displayData();--> document.getElementById('Email').value=''; addRow('tablemain'); file.close(); } function validations() { var email = document.getElementById('Email'); var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if(email.value!="") { if (!filter.test(email.value)) { alert('Voer een correct e-mail adres in'); return false; } else { createfile(); } } else { alert('Voer een e-mail adres in'); } } function addRow(id) { if(fso.fileExists(FILENAME)) { xmlDoc.load(FILENAME); var x; x=xmlDoc.getElementsByTagName("Details"); var table = document.getElementById('tbl'); var nxtbtn= document.getElementById("btnnext"); var prvbtn=document.getElementById("btnprev"); nxtbtn.disabled=true; prvbtn.disabled=true; if(x.length >5) { nxtbtn.disabled=false; } var j=0;k=5; if(k>x.length) {k=x.length;} var store=document.getElementById("txtstore"); var maxval=document.getElementById("txtmax"); if(id=="btnprev") { if((store.value % k)==0) { store.value = store.value - k ; if(store.value>0) { j = parseInt(store.value); k += parseInt(store.value); } } else { store.value =store.value - (store.value % k) ; if(store.value >0) { j = store.value - k; k = store.value; } } if(j > 0) { prvbtn.disabled=false; } } if(id=="btnnext") { if(store.value==0) { store.value=table.rows.length; } else if(store.value <0) { store.value=maxval.value; } prvbtn.disabled=false; if(store.value >=k) { j +=parseInt(store.value); k +=parseInt(store.value); if(k >= x.length) { k=x.length; nxtbtn.disabled = true; prvbtn.disabled = false; } } } } } </script> <link rel="stylesheet" href="css/style.css"> <link href='http://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'> </head> <body> <form action="#" id="empForm" action="" method="get"> <div class="header"> <p><b>Hier een titel</b></p> </div> <div class="description"> <p>Hier een kleine tekst</p> </div> <div class="input"> <input type="text" class="button" id="Email" name="Email" placeholder="Vul hier je e-mail adres in"> <input type="submit" class="button" id="submit" value="AANMELDEN" onclick="SaveXMLData()"/> </div> </form> </body> </html> |
Origineel bericht:Ik ben nu al een paar dagen bezig, maar ik krijg het niet werkend. Normaal zou ik dit doen met PHP, maar ik wil dat het ook offline werkt. Vandaar dat ik ben overgestapt naar Javascript, maar dat beheers ik helaas niet goed genoeg.
Wat ik wil maken is het volgende:
Een webpagina met één invoerveld en één verzendknop.
Het is de bedoeling dat de gebruiker zijn e-mail adres op kan geven en kan versturen. Na een klik op de knop wordt er gekeken of het xml document al bestaat. Zo niet, wordt het document gemaakt. Indien wel, wordt het e-mail adres bijschreven.
Ik zou graag willen dat dit offline werkt omdat ik het dan op mijn tablet kan gebruiken zonder internet (dus beveiligingsgevaren zijn niet aan de orde).
Ik heb een mooie werkende code gevonden. Echter is deze te uitgebreid (teveel invoervelden e.d.) dus probeer ik deze aan te passen. Maar elke keer als ik dat doe werkt het script niet meer...
Ik ben geen programmeur, maar vind het erg leuk om dit soort zaken te leren. Wie kan mij helpen?
Voor de volledigheid, hier de gevonden code. Een simpelere en kortere code heb ik helaas niet kunnen vinden.
Edit: Voor de leesbaarheid de originele code weggehaald. Mocht je deze willen lezen, dan kan je die vinden onder aan de volgende pagina.
[ Voor 103% gewijzigd door EJanus op 07-10-2015 10:01 . Reden: script bijgewerkt ]