Javascript werkt alleen na een refresh
Als ik op de knop "Verstuur" klik, wordt er een melding in een client sql database geplaatst en een bevestiging gegeven.
Maar dit werkt alleen nadat de pagina is gerefreshed!
Hoe zorg ik ervoor dat de functie gelijk werkt? Ik heb al geprobeerd om de functie "meldingToevoegen" in de $(document).ready(function() te zetten maar dan werkt de functie helemaal niet meer. Zie hieronder de code:
Code (php)
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
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
<script>
var db;
$(document).ready(function() {
//Opent de database
try
{
if (!window.openDatabase) {
alert('Niet ondersteund -> Gebruik a.u.b. een WebKit Browser');
} else {
var shortName = 'Rvpk';
var version = '1.0';
var displayName = 'De Rvpk databse';
var maxSize = 3072*1024; // = 3MB in bytes 65536
db = openDatabase(shortName, version, displayName, maxSize);
}
}
catch(e)
{
if (e == 2) {
alert("Invalid database version.");
} else {
alert("Unknown error "+e+".");
}return;
}
//Maakt indien nodig de meldingentabel en voegt meldingen toe
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS melding (id INTEGER PRIMARY KEY, naam)')
});
});
//De functie meldingToevoegen haalt de ingevoerde melding op uit het melding inputveld en plaatst deze in de meldingtabel
function meldingToevoegen(){
var melding = $('input:text[name=melding]').val();
db.transaction(function (tx) {
tx.executeSql("INSERT INTO melding (id, naam) VALUES (NULL, ?)", [melding]);
});
console.log("Melding "+ melding +" toegevoegd aan de database");
//Laat een bevestiging zien dat het versturen van de melding gelukt is
alert('De melding is verstuurd');
//Update de weergaves van de meldingen
meldingenWeergeven();
}
</script>
</head>
<body>
<?php include("includes/header2.php"); ?>
<div data-role="content">
<form>
<fieldset>
<label id="meldinglabel" for="melding">Melding:</label>
<input id="melding" type="text" name="melding" value="Dit gaat zo niet langer">
<button onClick="meldingToevoegen()" data-theme="g">Verstuur</button>
</fieldset>
</form>
</div>
var db;
$(document).ready(function() {
//Opent de database
try
{
if (!window.openDatabase) {
alert('Niet ondersteund -> Gebruik a.u.b. een WebKit Browser');
} else {
var shortName = 'Rvpk';
var version = '1.0';
var displayName = 'De Rvpk databse';
var maxSize = 3072*1024; // = 3MB in bytes 65536
db = openDatabase(shortName, version, displayName, maxSize);
}
}
catch(e)
{
if (e == 2) {
alert("Invalid database version.");
} else {
alert("Unknown error "+e+".");
}return;
}
//Maakt indien nodig de meldingentabel en voegt meldingen toe
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS melding (id INTEGER PRIMARY KEY, naam)')
});
});
//De functie meldingToevoegen haalt de ingevoerde melding op uit het melding inputveld en plaatst deze in de meldingtabel
function meldingToevoegen(){
var melding = $('input:text[name=melding]').val();
db.transaction(function (tx) {
tx.executeSql("INSERT INTO melding (id, naam) VALUES (NULL, ?)", [melding]);
});
console.log("Melding "+ melding +" toegevoegd aan de database");
//Laat een bevestiging zien dat het versturen van de melding gelukt is
alert('De melding is verstuurd');
//Update de weergaves van de meldingen
meldingenWeergeven();
}
</script>
</head>
<body>
<?php include("includes/header2.php"); ?>
<div data-role="content">
<form>
<fieldset>
<label id="meldinglabel" for="melding">Melding:</label>
<input id="melding" type="text" name="melding" value="Dit gaat zo niet langer">
<button onClick="meldingToevoegen()" data-theme="g">Verstuur</button>
</fieldset>
</form>
</div>
Toevoeging op 03/11/2012 12:46:52:
Probleem gevonden! /topic
Gewijzigd op 03/11/2012 11:22:51 door Tobias Boekwijt
Er zijn nog geen reacties op dit bericht.