[js]loop voor een array

Pagina: 1
Acties:

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10-09 16:14
Ik heb een javascript dat de waardes die gekozen worden in een pulldown menutje moeten worden weergegeven in textfields

nou lukt dat aardig tot en met de eerste rij uit de database de eerste naam dus en die geeft hij helemaal weer.
(Deze heeft als ID in de Database: 1) En nu komt mijn probleem als ik de tweede waarde (ID 6) aan klik in het dropdown menutje dan krijg ik undefined te zien in de textfields en in de bron geeft hij ook weer dat er geen nieuwe Array op gebouwd wordt.

wat gaat hier niet goed
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
<script language="JavaScript" type="text/javascript">
<!--
var gegevens = new Array();

for (i=1; i<=40; i++) {
     gegevens[i] = new Array(40);
}

gegevens[40][1] = "";
gegevens[40][2] = "";
gegevens[40][3] = "";
gegevens[40][4] = "";
gegevens[40][5] = "";
gegevens[40][6] = "";


gegevens[<%=(Bedrijfsadressen.Fields.Item("ID").Value)%>][1] = "<%=(Bedrijfsadressen.Fields.Item("Postbus").Value)%>";
gegevens[<%=(Bedrijfsadressen.Fields.Item("ID").Value)%>][2] = "<%=(Bedrijfsadressen.Fields.Item("PostcodeNR").Value)%>";
gegevens[<%=(Bedrijfsadressen.Fields.Item("ID").Value)%>][3] = "<%=(Bedrijfsadressen.Fields.Item("PostcodeLetters").Value)%>";
gegevens[<%=(Bedrijfsadressen.Fields.Item("ID").Value)%>][4] = "<%=(Bedrijfsadressen.Fields.Item("Plaats").Value)%>";
gegevens[<%=(Bedrijfsadressen.Fields.Item("ID").Value)%>][5] = "<%=(Bedrijfsadressen.Fields.Item("Straat").Value)%>";
gegevens[<%=(Bedrijfsadressen.Fields.Item("ID").Value)%>][6] = "<%=(Bedrijfsadressen.Fields.Item("land").Value)%>";



//gegevens[3][1] = "";
//gegevens[3][2] = "Se1 2";
//gegevens[3][3] = "TU";
//gegevens[3][4] = "London";
//gegevens[3][5] = "148 Tooley Street";
//gegevens[3][6] = "U.K.";



function loadForm(nr,form) {
    BestellingLijst.postbus.value = gegevens[nr][1];
    BestellingLijst.postcode_nr.value = gegevens[nr][2];
    BestellingLijst.postcode_letters.value = gegevens[nr][3];
    BestellingLijst.woonplaats.value = gegevens[nr][4];
       BestellingLijst.adres.value = gegevens[nr][5];
      BestellingLijst.land.value = gegevens[nr][6];

}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>

Onderstaande is de code voor het pulldown menu!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<select name="straten" onChange="loadForm(this.options[this.selectedIndex].value,this.form);MM_callJS('')">
                    <option value="40">kies een locatie</option>
                    <%
While (NOT Bedrijfsadressen.EOF)
%>
                    <option value="<%=(Bedrijfsadressen.Fields.Item("ID").Value)%>" ><%=(Bedrijfsadressen.Fields.Item("Straat").Value)%></option>
                    <%
  Bedrijfsadressen.MoveNext()
Wend
If (Bedrijfsadressen.CursorType > 0) Then
  Bedrijfsadressen.MoveFirst
Else
  Bedrijfsadressen.Requery
End If
%>
 </select>

Heart..pumps blood.Has nothing to do with emotion! Bored


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

P&W -> W&G

Doet iets met Cloud (MS/IBM)


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

javascript hoort in /13, maar dit is een probleem van je ASP (toch), kijk eens in je source, en dan zie je dat er maar 1 element ingevuld is in het javascript....

Daarnaast vraag ik met trouwens wel af of dit een juiste aanpak is, aangezien je nu behoorlijk grote html-pagina's krijgt...

hmm .. d2k is me voor..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10-09 16:14
de dropdown knop wordt wel netjes gevuld...

maar die moet daarna netjes de gegevens doorspelen in text boxjes.

En dat werkt alleen bij het eerste ID (1)
De tweede wordt, zoals gezegd niet gevuld...

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Het eerste probleem wat ik zie is dat alle arrays niet zero-based zijn. Het eerste element heeft als index normaal gesproken niet 1 maar 0:
code:
1
2
var myArray = ['ja','nee','misschien'];
// myArray[1] == 'nee'

edit:
Je speelt ook de value door van de select, maar dat is altijd een string. Voordat je die als indexwaarde kunt gebruiken moet je 'm parseInten:
code:
1
2
3
function loadForm(str_nr,form) {
    var nr = parseInt(str_nr);
    [...etc]

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10-09 16:14
hier is een stukje uit de bron
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
</script>
<script language="JavaScript" type="text/javascript">
<!--
var gegevens = new Array();

for (i=0; i<=40; i++) {
   gegevens[i] = new Array(40);
}

gegevens[40][1] = "";
gegevens[40][2] = "";
gegevens[40][3] = "";
gegevens[40][4] = "";
gegevens[40][5] = "";
gegevens[40][6] = "";


gegevens[1][1] = " 100";
gegevens[1][2] = "3342";
gegevens[1][3] = " AA";
gegevens[1][4] = " ROTTERDAM";
gegevens[1][5] = " nijverheidsweg";
gegevens[1][6] = "Nederland";


function loadForm(nr,form) {
    BestellingLijst.postbus.value = gegevens[nr][1];
    BestellingLijst.postcode_nr.value = gegevens[nr][2];
    BestellingLijst.postcode_letters.value = gegevens[nr][3];
    BestellingLijst.woonplaats.value = gegevens[nr][4];
       BestellingLijst.adres.value = gegevens[nr][5];
      BestellingLijst.land.value = gegevens[nr][6];

}


code:
1
2
3
4
5
6
7
8
<select name="straten" onChange="loadForm(this.options[this.selectedIndex].value,this.form);MM_callJS('')">
                    <option value="40">kies een locatie</option>
                    
                    <option value="1" selected > nijverheidsweg</option>
                    
                    <option value="6" selected >kruiningenstraat</option>
                    
                    </select>

en dan zie je dat gegevens[1]wel opgebouwd wordt maar gegevens[6] niet. en daar loopt het spaak.
alles van gegevens[1] wordt wel netjes afgedrukt in de textfields.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10-09 16:14
Het lag zoals Janoz opmerkte toch aan de asp.
alleen de eerste reeks werd uit de database getrokken.
en niets meer
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%
While (NOT BEDRIJFSGEGEVENS.EOF)
%>
gegevens[<%=(BEDRIJFSGEGEVENS.Fields.Item("ID").Value)%>][1] = "<%=(BEDRIJFSGEGEVENS.Fields.Item("Postbus").Value)%>";
gegevens[<%=(BEDRIJFSGEGEVENS.Fields.Item("ID").Value)%>][2] = "<%=(BEDRIJFSGEGEVENS.Fields.Item("PostcodeNR").Value)%>";
gegevens[<%=(BEDRIJFSGEGEVENS.Fields.Item("ID").Value)%>][3] = "<%=(BEDRIJFSGEGEVENS.Fields.Item("PostcodeLetters").Value)%>";
gegevens[<%=(BEDRIJFSGEGEVENS.Fields.Item("ID").Value)%>][4] = "<%=(BEDRIJFSGEGEVENS.Fields.Item("Plaats").Value)%>";
gegevens[<%=(BEDRIJFSGEGEVENS.Fields.Item("ID").Value)%>][5] = "<%=(BEDRIJFSGEGEVENS.Fields.Item("Straat").Value)%>";
gegevens[<%=(BEDRIJFSGEGEVENS.Fields.Item("ID").Value)%>][6] = "<%=(BEDRIJFSGEGEVENS.Fields.Item("land").Value)%>";
                    
<%
  BEDRIJFSGEGEVENS.MoveNext()
Wend
If (BEDRIJFSGEGEVENS.CursorType > 0) Then
  BEDRIJFSGEGEVENS.MoveFirst
Else
 BEDRIJFSGEGEVENS.Requery
End If
%>

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Het lag zoals Janoz opmerkte toch aan de asp.
alleen de eerste reeks werd uit de database getrokken.
en niets meer
Dus je wilt zeggen dat je niet eens gekeken hebt naar de source die je ASP genereerde?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 10-09 16:14
jawel, alleen ik snapte het niet.

Kijk, die dropdown werd wel netjes gevuld, dus ik dacht dat dat goed was.

Blijkbaar niet, want er moest nog een <% while %> om de "gegevens" array heen...

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Ach.. het schijnt dat mensen een vraag posten op GoT steeds makkelijker vinden.. Nu nog zorgen dat ze ook de antwoorden lezen :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1