Beste medetweakers,
Ik ben mezelf Javascript/AJAX aan het aanleren. Ik ben hier opzich een heel eind mee, maar ik loop op dit moment op een punt vast.
Ik ben, om te oefenen, een site aan het aanmaken, waarin gegevens kunnen worden opgeslagen (over bijvoorbeeld personen) in een database.
Het bovenste gedeelte van het scherm bevat de 'invul velden' (comboboxes, textfields etc).
Het onderste gedeelte van het scherm is een table waarin deze gegevens worden weergegeven, met als laatste kolom een mogelijkheid tot verwijderen van deze persoon.
De 'knop' (img met javascript) roept een functie aan, die enkel de 'div' gegevens aanpast waar deze tabel instaat, zodat niet het hele formulier opnieuw wordt geladen:
Dit werkt allemaal prima. De data_jsexec.php wordt netjes aangeroepen, en het desbetreffende record wordt verwijderd uit zowel de database (na check in de phpmyadmin is de record inderdaad weg), als de 'table' op de pagina. Echter, als ik naar een andere pagina switch, en vervolgens weer terug naar het gebruikers scherm, staat de record weer in de table op de pagina (terwijl hij wel nog steeds verwijderd is uit de database).
Misschien een domme vraag, maar heeft dit iets met caching te maken? Of klopt het script in de functie submit_javascript() niet?
Alvast bedankt!
Ik ben mezelf Javascript/AJAX aan het aanleren. Ik ben hier opzich een heel eind mee, maar ik loop op dit moment op een punt vast.
Ik ben, om te oefenen, een site aan het aanmaken, waarin gegevens kunnen worden opgeslagen (over bijvoorbeeld personen) in een database.
Het bovenste gedeelte van het scherm bevat de 'invul velden' (comboboxes, textfields etc).
Het onderste gedeelte van het scherm is een table waarin deze gegevens worden weergegeven, met als laatste kolom een mogelijkheid tot verwijderen van deze persoon.
De 'knop' (img met javascript) roept een functie aan, die enkel de 'div' gegevens aanpast waar deze tabel instaat, zodat niet het hele formulier opnieuw wordt geladen:
JavaScript:
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
| function load_datascreen(sObj,sSoort,sFiltExt) { var geb; var sloc; geb= document.getElementById('hidden_geb').value; document.getElementById('hidden_proj').value = sObj; sFiltExt = sFiltExt || ""; //sFiltExt is alleen meegestuurd bij add/edit/remove. Anders een lege string meegeven fltr = "act=show&obj="+sObj+"&med="+med+sFiltExt; if (sSoort == 'all' || sSoort == 'head') submit_javascript('GET','exec/data_jsexec.php?'+fltr+'&targ=head','data_add','true'); if (sSoort == 'all' || sSoort == 'body') submit_javascript('GET','exec/data_jsexec.php?'+fltr+'&targ=body','data_show','true'); } function submit_javascript(sMethod,sLink,sSource,bSubmit){ //sMethod = GET/POST; sLink = link to send; sSource = div where information goes, bSubmit(true/false) = form submitted? var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200 && bSubmit == 'true') document.getElementById(sSource).innerHTML=xmlhttp.responseText; } xmlhttp.open(sMethod,sLink,true); xmlhttp.send(); } |
Dit werkt allemaal prima. De data_jsexec.php wordt netjes aangeroepen, en het desbetreffende record wordt verwijderd uit zowel de database (na check in de phpmyadmin is de record inderdaad weg), als de 'table' op de pagina. Echter, als ik naar een andere pagina switch, en vervolgens weer terug naar het gebruikers scherm, staat de record weer in de table op de pagina (terwijl hij wel nog steeds verwijderd is uit de database).
Misschien een domme vraag, maar heeft dit iets met caching te maken? Of klopt het script in de functie submit_javascript() niet?
Alvast bedankt!