FAQ |
Kalender |
2014-05-01, 12:47 | #1 | |||
|
||||
Flitig postare
|
Hej,
Har stött på ett litet problem på en sida jag utvecklar till en kund. På sidan ska man kunna välja län och sedan kommun. Har använt mig av javascript för detta. Dock skulle jag behöva ha med ett ID istället för kommunens namn. <script type="text/javascript"> // State lists var states = new Array(); states['Blekinge'] = new Array('Karlshamn','Karlskrona','Olofström','Ronneb y','Sölvesborg'); function setStates(){ cntrySel = document.getElementById('country'); stateList = states[cntrySel.value]; changeSelect('state', stateList, stateList); setCities(); } function changeSelect(fieldID, newOptions, newValues) { selectField = document.getElementById(fieldID); selectField.options.length = 1; for (i=0; i<newOptions.length; i++) { selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]); } } </script> RESULTAT EFTER MAN VALT EX. BLEKINGE -------------------------------------------------- <select id="state" onchange="setCities();" name="taxo[1][term]"> <option value="">Alla Städer</option> <option value="Karlshamn">Karlshamn</option> <option value="Karlskrona">Karlskrona</option> <option value="Olofström">Olofström</option> <option value="Ronneby">Ronneby</option> <option value="Sölvesborg">Sölvesborg</option> </select> Jag skulle alltås vilja ha ett förbestämt ID i value istället för Karlshamn. Karlshamn ska dock stå kvar som namn i option. Någon som har några tips på hur jag ska ändra i javascript koden? Har försökt leta efter lösning på nätet men inte hittat något som passar. |
|||
Svara med citat |
2014-05-01, 13:21 | #2 | ||
|
|||
Medlem
|
Sätt ID till kommunerna.
Sätt in ID i value istället för namn. Klart? |
||
Svara med citat |
2014-05-01, 13:30 | #3 | |||
|
||||
Flitig postare
|
Den skapar ju kommunlistan med hjälp av javascript och då blir value automatiskt kommunens namn, jag skulle vilja ha ett eget ID där istället.
Förmodar att jag ska ändra något i koden states['Blekinge'] = new Array('Karlshamn','Karlskrona','Olofström','Ronneb y','Sölvesborg'); samt koden function changeSelect(fieldID, newOptions, newValues) { selectField = document.getElementById(fieldID); selectField.options.length = 1; for (i=0; i<newOptions.length; i++) { selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]); |
|||
Svara med citat |
2014-05-01, 13:49 | #4 | ||
|
|||
Medlem
|
Kod:
states['Blekinge'] = [ {id: 1, name: 'Karlshamn'}, {id: 2, name: 'Karlskrona'}, {id: 3, name: 'Olofström'}, {id: 4, name: 'Ronneby'}, {id: 5, name: 'Sölvesborg'} ]; Kod:
function changeSelect(fieldID, newOptions, newValues) { selectField = document.getElementById(fieldID); selectField.options.length = 1; for (i=0; i<newOptions.length; i++) { selectField.options[selectField.length] = new Option(newOptions[i].name, newValues[i].id); } } |
||
Svara med citat |
2014-05-01, 13:51 | #5 | ||
|
|||
Medlem
|
Föresten, det här är inte en serverteknologi. Det är klienten som exekverar koden
|
||
Svara med citat |
2014-05-01, 13:55 | #6 | |||
|
||||
Flitig postare
|
||||
Svara med citat |
2014-05-01, 14:10 | #7 | |||
|
||||
Flitig postare
|
Fungerade perfekt ANttila! Tack!
|
|||
Svara med citat |
2014-05-01, 14:40 | #8 | ||
|
|||
Medlem
|
|||
Svara med citat |
2014-05-01, 14:53 | #9 | ||
|
|||
Supermoderator
|
Flyttade tråden till klientsidan. Det normala förfarandet är dock att man hämtar den här typen av data från en databas och levererar resultatet på serversidan vilket du också bör göra om du använder detta på flera ställen och/eller har lite fler val än bara fem städer i Blekinge.
__________________
Full-stack developer, free for smaller assignments |
||
Svara med citat |
Svara |
|
|