Javascript en invullen inhoud knop (comboknop?)
26 augustus 2009 - 22:10   
geplaatst door: Perquin
Ik werk op een school en we hebben een leerlingvolgsysteem die webbased is.
Je voelt hem al aan, het is op een PC gemaakt en niet alles werkt op een Mac.
De systeembeheerder die het ontworpen heeft zegt dat als je met explorer de
website bekijkt alles zou moeten werken :cool:.
Alles gaat goed totdat ik in dit gedeelte kom:

Zoals je ziet kan ik leerjaar 4 kiezen. Wat er vervolgens zou moeten gebeuren
is dat de knop 'vak' gevuld wordt met vakken, maar als ik op knop 'vak' klik
zie ik alleen maar 'vak'.
Het zou een beetje moeten werken zoals tweedehands auto sites, waarbij je
eerst merk kiest en vervolgens alle types van dat merk kunt kiezen.
Ik heb de fout opsporing van javascript aangezet en kreeg toen dit plaatje:

Het zegt mij niks en ik zou niet weten wat er moet gebeuren om het wel te
laten werken.

Is er iemand die in duidelijke taal kan vertellen wat er moet gebeuren met
dit javascript zodat ik thuis in het leerlingvolgsysteem kan werken? Alvast
erg bedankt :shakehands:

(Bewerkt door Perquin om 22:13, 26-08-2009)

Javascript en invullen inhoud knop (comboknop?)
26 augustus 2009 - 22:30    reactie #1
geplaatst door: ettepet
Ik ben bang dat je de bouwer moet bijscholen over hoe hij elementen op een browser-vriendelijke manier moet aanroepen.

Het gebruikte document.frames is een IE-manier om een array van frames op te halen.
Zie klikkerdeklik voor een voorbeeld-discussie die erg op de jouwe lijkt. Misschien dat de systeembeheerder daar eens naar kan kijken!?

(Bewerkt door ettepet om 22:34, 26-08-2009)

Javascript en invullen inhoud knop (comboknop?)
28 augustus 2009 - 22:08    reactie #2
geplaatst door: Perquin
Bedankt ettepet, maar nog iets verder gepuzzeld, want ik zou de oplossing
toch graag op een presenteerblaadje geven. Voor de systeembeheerder
levert het namelijk nauwelijks iets op, voor mij wel.

En daarbij begrijp ik een paar dingen van de klikerdeklik link, maar lang
niet alles.

Het gedeelte script waar de document.frames in staat ziet er zo uit:

      function fnNieuweWaarden(strLijstNaam){
         //Deze functie wordt opgestart vanuit WisselBulkKoppelen.asp
         var frmList = document.getElementById("frmQuintSelectie");
         //Maak een verwijzing naar de array in het andere iframe
         var arrWaarden = document.frames["fraSel"].arrItems;
         //Wis oude opties
         for (var i=frmList(strLijstNaam).options.length;i>0;i--){
            frmList(strLijstNaam).options = null;
         }
         //voeg nieuwe opties toe
         for (var i=0;i< arrWaarden.length;i++){
            frmList(strLijstNaam).options[i+1] = new Option(arrWaarden[1],arrWaarden[0]);
         }
         frmList(strLijstNaam).options[0].selected = true;

Ik begrijp dat er document.getElementById("fraSel").arrItems moet komen te staan in plaats van document.frames["fraSel"].arrItems, maar vraag me af of dit het enige is.

Javascript en invullen inhoud knop (comboknop?)
29 augustus 2009 - 20:54    reactie #3
geplaatst door: ettepet
Ik ben bang dat het dan toch een kwestie van proberen blijft.
Probeer dit stukje code met getElementById te repareren.

Het lijkt me echter sterk dat er in de hele javascript-file maar 1 IE-only ding verwerkt zit.
Aan de andere kant, de programmeur heeft blijkbaar wel weet van het bestaan van deze getElementById functie, zie de regel code erboven. Dus wie weet valt het reuze mee! :biggrin:

Daar kun je alleen maar achter komen door er samen aan te werken...

Javascript en invullen inhoud knop (comboknop?)
29 augustus 2009 - 21:29    reactie #4
geplaatst door: Perquin
ha ha, ik ga hem weer eens lastig vallen. Lekker Mac-zeuren  :happy:

Ik hou je op de hoogte!

PS. Deze functie wordt inderdaad op meerdere plekken genoemd

(Bewerkt door Perquin om 21:31, 29-08-2009)

Javascript en invullen inhoud knop (comboknop?)
1 september 2009 - 19:57    reactie #5
geplaatst door: Perquin
Voor eenieder die dit zelfde probleem tegenkomt.

Het probleem met invullen van de selectieknop is opgelost. Een ander probleem is opgestaan, maar ja.

De functie die ik noemde bevatte één regel die aangepast is:
   var arrWaarden = document.frames["fraSel"].arrItems;

In plaats hiervan moet geschreven worden:
   var arrWaarden = window.frames["fraSel"].arrItems;

De knop vult dan goed.

PS er is nog een functie waarin een foutje zit, maar om te zorgen dat anderen het makkelijk ook kunnen vinden zal ik een apart draadje daarvoor opstarten
:wink: