[FireFox - Javascript] CreateElement voor een listbox?

Pagina: 1
Acties:
  • 35 views sinds 30-01-2008

  • Lifelogger
  • Registratie: Juni 2004
  • Laatst online: 17-05 19:19
Ik heb de volgende code in een documtent genaamd index.asp:

code:
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
<script language="JavaScript" type="text/javascript"> 
   function vulSubgroepSelect() 
   { 
      //alert(document.Dropdowns.productgroep.value) 
      //document.all.GetData.src='clusterinfo-1.asp?hoofdGroepID='+document.Dropdowns.productgroep[document.Dropdowns.productgroep.selectedIndex].value;                            
      obj = document.getElementById("GetData") 
      obj.src = 'clusterinfo-1.asp?hoofdGroepID='+document.Dropdowns.productgroep[document.Dropdowns.productgroep.selectedIndex].value; 
   }    
</script> 

   <iframe id="GetData" frameborder="0" style="border:0px;width:500px;height:500px;"></iframe> 

   <form method="post" name="Dropdowns"> 
      <input type="hidden" name="UsersessionID" value="<%=UsersessionID%>"> 
      <select name="productgroep" class="pulldown" onChange="vulSubgroepSelect();"> 
         <option value="0">---Selecteer Productgroep</option> 
      <% 
         Dim rsProductgroepen 
         Set rsProductgroepen = Lib.DbRecordset("SELECT DISTINCT ArtikelhoofdgroepID, HoofdgroepNaam FROM qryWEB_Artikelen Order BY HoofdgroepNaam") 
          
         While not rsProductgroepen.eof 
      %>    
         <option value="<%=rsProductgroepen("ArtikelHoofdgroepID")%>" <% 
            if rsProductgroepen("ArtikelHoofdgroepID")=iDD_ArtikelHoofdgroepID then response.write " selected "%>> 
            <%=rsProductgroepen("HoofdgroepNaam")%> 
         </option> 
      <%    
         rsProductgroepen.movenext 
         Wend 
          
         rsProductgroepen.close 
         set rsProductgroepen = nothing 
      %> 
      </select><br> 
                         
      <select name="subgroep" id="subgroep" class="pulldown" onChange="vulSubSubGroepSelect();"> 
      <% 
         if iDD_ArtikelID <> 0 then 
      %> 
            <option value="0">---Selecteer Subgroep</option> 
         <% 
            'LET OP! 
            'ALLEEN DE SUBGROEPEN MOGEN GELADEN WORDEN DIE GERELATEERD ZIJN AAN HET HOOFDGROEP. 
            'DAAROM ALLEEN WHERE ArtikelhoofdgroepID = iDD_ArtikelHoofdgroepID 
            Dim rsSubgroepen 
            Set rsSubgroepen = Lib.DbRecordset("SELECT DISTINCT ArtikelSubGroepID, SubGroepNaam FROM qryWEB_Artikelen WHERE ArtikelhoofdgroepID=" & iDD_ArtikelHoofdgroepID  & " Order BY subgroepNaam") 
             
            While not rsSubgroepen.eof 
         %>    
            <option value="<%=rsSubgroepen("ArtikelSubgroepID")%>" 
         <% 
            if rsSubgroepen("ArtikelSubgroepID")=iDD_ArtikelSubgroepID then response.write " selected "%>> 
               <%=rsSubgroepen("subgroepNaam")%> 
            </option> 
         <%    
            rsSubgroepen.movenext 
            Wend 
             
            rsSubgroepen.close 
            set rsSubgroepen = nothing 
         end if 
      %> 
      </select><br>


In cluster-1.asp staat het volgende:

code:
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
<script language="JavaScript" type="text/javascript"> 

<% if request("hoofdGroepID")&""<>"" then 'subgroep vullen' %> 
          
         //SELECTEER HET PULLDOWN LIST DAT GEVULD MOET GAAN WORDEN 
            var selectSubGroep = parent.document.getElementById("subgroep"); 
          
            selectSubGroep.options.length=0;    //MAAK DE LIST SUBGROEP LEEG 

            var oSubGroep; 
               oSubGroep = parent.document.createElement("OPTION"); 
            selectSubGroep.options.add(oSubGroep); 
                 oSubGroep.innerText = "Selecteer subgroep"; 

            <% 

            Dim rsSubgroepen    
            Set rsSubgroepen=Lib.DbRecordSet("SELECT DISTINCT ArtikelSubgroepID, subGroepNaam FROM qryWEB_Artikelen WHERE ArtikelHoofdgroepID=" & request("hoofdGroepID") & " ORDER BY SubgroepNaam") 
    
            While not rsSubgroepen.Eof %> 
               oSubGroep = document.createElement("OPTION"); 
               selectSubGroep.options.add(oSubGroep); 
               oSubGroep.innerText = "<%=rsSubgroepen("SubGroepNaam")%>"; 
               oSubGroep.value = "<%=rsSubgroepen("ArtikelSubgroepID")%>"; 
            <%        rsSubgroepen.movenext 
               Wend 

            rsSubgroepen.close 
            set rsSubgroepen=nothing 

  end if%> 

</script>


Om even uit te leggen wat er gebeurt. Als ik de eerste listbox ingelezen is vanuit de database, kan ik natuurlijk kiezen. Zodra ik iets kies, wordt het javascript: vulSubgroepSelect() aangeroepen.

vulSubgroepSelect() stuurt vervolgens een pagina met wat parameters naar het iframe GetData.

In het iframe Get data worden vervolgens records uit een database uitgelezen. De records die uitgelezen worden moeten terug gestopt worden in de tweede listbox.

In Internet Explorer werkt dit prima. Alleen in Firefox is het resultaat dat ik de inhoud van de tweede listbox niet te zien krijg. Ik kan wel zien dat hij er records in geladen heeft, aangezien het aantal velden dat ik zie, die leeg zijn, veranderen. Ook als ik de source van het iframe bekijk zie ik dat de select is opgebouwd met value's en innerText.

Het probleem is dus dat hij wel wat laad, maar ik uiteindelijk in de listbox niets te zien krijg. In IE wel...

Weet iemand wat er verkeerd gaat hier en wat ik kan doen, zodat ik in FireFox wel gewoon te zien krijg wat er in de tweede list staat?

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 19-05 17:13

RM-rf

1 2 3 4 5 7 6 8 9

ik zou gewoon het meer traditionele document.forms-model gebruiken, dat bood allang dezelfde mogelijkheden voor formulier-velden:

code:
1
var oSubGroep = new Option( "text", "value" )


de fout ligt echter in de 'innerText' propertie, die kent het DOM niet en is msie-proprietair

overigens kan het handig zijn als code voorbeeld gewoon de gegenereerde code hier te plaatsen, en ASP-scripting weg te laten, dat wekt veel verwarring op (VB en javascript door elkaar, ziet er niet geheel 'lekker' uit)

[ Voor 11% gewijzigd door RM-rf op 30-11-2004 13:38 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Firefox heeft een Javascript console. Geeft die geen foutmelding?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Hoi Lifelogger,

Zoals je in de P&W faq had kunnen lezen hoort Javascript niet hier, maar bij de buren in Webdesign & Graphics :)

Daarnaast paste je een behoorlijke lap code wat je post onnodig onleesbaar maakt. Daarnaast mis ik in je post ook nog de informatie over wat je zelf nog hebt geprobeerd om je probleem op te lossen.

Vandaar dat ik je topic sluit. Mocht je een nieuwe topic openen dan dus niet hier maar in Webdesign & Graphics en probeer alleen de echt relevante code erbij te posten.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.