Ik heb diverse javascript sites bekeken, maar wat ik kan zien is b.v.:
document.form.select.options[document.form.select.selectedIndex].value
als ik gekozen waarde uit select menu wil aflezen.
Nu maak ik een site dat dynamisch inhoud verandert. De select menu wordt helemaal vanuit het niets gebouwd (dus staat nog nergens in HTML) en wordt in ene <div id='searchresult'> </div> geplaatst via innerHTML commando. Dat werkt prima.
Maar gek genoeg kan ik niet waarde aflezen met bovenstaande commando, en firefox javascript-console geeft foutmelding aan:
document.mapform.npcid.options has no properties
Wat is dat nou weer.....
De onderstaande code staat tussen <form name='mapform'></form> deel.
Via javascript wordt een andere php file opgeroepen en deze deel wordt uitgevoerd
Zoals je kan zien maak ik nieuwe SELECT box aan, dat nog niet in bestaande HTML pagina staat.
Opmerkelijk detail is dat <div> op position:absolute; staat. Dat kan je dus overal plaatsen op pagina, ik hoop dat geen nare effect heeft op <form></form> velden.
Uit onderzoek is gebleken dat het geen verschil maakt als ik op position:relative; zet.
Een analyse met document.mapform.npcid.length (waar je aantal option velden kunt optellen) geeft afwijkende waarde aan. Er klopt niet. Het geeft altijd '2' aan.
Ik weet dat het wel mogelijk is om alsnog waarde eruit te halen wat geselecteerd is uit dynamisch aangemaakte select menu, maar welke commando's en codes zijn hiervoor nodig?
Ik heb rest van de site wel aan praat gekregen, maar dit is enige dat nog niet goed loopt.
Je mag het zeggen hoe ik ga aanpakken, en wat ik moet opletten en welke mogelijke codes zijn hiervoor nodig?
document.form.select.options[document.form.select.selectedIndex].value
als ik gekozen waarde uit select menu wil aflezen.
Nu maak ik een site dat dynamisch inhoud verandert. De select menu wordt helemaal vanuit het niets gebouwd (dus staat nog nergens in HTML) en wordt in ene <div id='searchresult'> </div> geplaatst via innerHTML commando. Dat werkt prima.
Maar gek genoeg kan ik niet waarde aflezen met bovenstaande commando, en firefox javascript-console geeft foutmelding aan:
document.mapform.npcid.options has no properties
Wat is dat nou weer.....
De onderstaande code staat tussen <form name='mapform'></form> deel.
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
64
65
66
67
68
69
70
71
| <div class="tabcontent" id="editnpc"> <h3>EDIT NPC</h3> <div style="background-color:#999999;">Search NPC:</div> <div style="background-color:#DDDDDD; color:#000000;"> Name NPC: <input name="searchn" type="text" value="" size="20" autocomplete="off" onkeyup="searchnpc()" /><br /> Function: <select name="searchf" onchange="searchnpc()"> <option value="0">-- search all --</option> <? // verzamel area data $sql=mysql_query("SELECT * FROM npcfunction ORDER BY nfunction"); if (mysql_num_rows($sql)) { while($data=mysql_fetch_array($sql)) { ?> <option value="<?=$data[nfid];?>"><?=$data[nfunction];?></option> <? } } ?></select><br /> Area: <select name="searcha" onchange="searchnpc()"> <option value="0">-- search all --</option> <? // verzamel area data $sql=mysql_query("SELECT * FROM area,areatype WHERE area.atypeid=areatype.atid ORDER BY anaam ASC"); if (mysql_num_rows($sql)) { while($data=mysql_fetch_array($sql)) { ?> <option value="<? echo $data[aid];?>"><?=$data[anaam]." (".$data[atnaam].") "; if ($data[amap]==1) { echo "F"; } else { echo "T"; } ?></option> <? } } ?></select></div> <div id="searchresult" style="background-color:#3366FF; position:absolute; padding:1px; display:block; border:#33CCFF 1px solid; margin-top:5px;"> <select name="npcid" onchange="editnpc()"> <option value="0">-- Search first --</option> </select> </div> <div id="editnpcfield" style="position:relative; visibility:hidden;"> You may now edit the fields.<br /> Name NPC: <input name="enaam" type="text" value="" size="35" /><br /> Function:<br /> <select name="efunction"> <option value="0">-- please choose --</option> <? // verzamel area data $sql=mysql_query("SELECT * FROM npcfunction ORDER BY nfunction"); if (mysql_num_rows($sql)) { while($data=mysql_fetch_array($sql)) { ?> <option value="<?=$data[nfid];?>"><?=$data[nfunction];?></option> <? } } ?></select><br /> Area:<br /> <select name="earea"> <? // verzamel area data $sql=mysql_query("SELECT * FROM area,areatype WHERE area.atypeid=areatype.atid AND area.amap='2'"); if (mysql_num_rows($sql)) { while($data=mysql_fetch_array($sql)) { ?> <option value="<?=$data[aid];?>"><?=$data[anaam]." (".$data[atnaam].")";?></option> <? } } ?></select><br /> Description NPC: <textarea name="etekst" cols="30" rows="4" id="tekst"></textarea> <input name="npcid" type="hidden" value="" /> <input name="nedit_editsubmit" value="Edit npc" type="submit" /> </div> </div> |
Via javascript wordt een andere php file opgeroepen en deze deel wordt uitgevoerd
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| $sql=mysql_query("SELECT * FROM npc".$searchstring." ORDER BY nnaam ASC"); if (mysql_num_rows($sql)) { $inhoud.="Found something. You can choose now.<br /><select name='npcid' onchange='editnpc()'>"; $inhoud.="<option value='0'>-- select one --</option>"; while($data=mysql_fetch_array($sql)) { $sql2=mysql_query("SELECT area.anaam,areatype.atnaam FROM area,areatype WHERE area.aid='".$data[naid]."' AND area.atypeid=areatype.atid"); list($anaam,$atnaam)=mysql_fetch_row($sql2); $sql2=mysql_query("SELECT nfunction FROM npcfunction WHERE nfid='".$data[nfunc]."'"); list($nfunction)=mysql_fetch_row($sql2); $inhoud.="<option value='".$data[nid]."'>".$data[nnaam]." (".$nfunction.") at ".$anaam."</option>"; } $inhoud.="</select>"; } else { $inhoud.="Nothing found. Try again."; } |
Zoals je kan zien maak ik nieuwe SELECT box aan, dat nog niet in bestaande HTML pagina staat.
Opmerkelijk detail is dat <div> op position:absolute; staat. Dat kan je dus overal plaatsen op pagina, ik hoop dat geen nare effect heeft op <form></form> velden.
Uit onderzoek is gebleken dat het geen verschil maakt als ik op position:relative; zet.
Een analyse met document.mapform.npcid.length (waar je aantal option velden kunt optellen) geeft afwijkende waarde aan. Er klopt niet. Het geeft altijd '2' aan.
Ik weet dat het wel mogelijk is om alsnog waarde eruit te halen wat geselecteerd is uit dynamisch aangemaakte select menu, maar welke commando's en codes zijn hiervoor nodig?
Ik heb rest van de site wel aan praat gekregen, maar dit is enige dat nog niet goed loopt.
Je mag het zeggen hoe ik ga aanpakken, en wat ik moet opletten en welke mogelijke codes zijn hiervoor nodig?