Avatar billede lklingenberg Nybegynder
05. juli 2002 - 07:41 Der er 8 kommentarer og
1 løsning

Værdi fra dropdown skal bruges i andet felt

Hi,

Dette problem involverer også noget ASP, men mon ikke det går alligevel  ;-)

Jeg har tre felter i en form:
1) dropdown med navne der genereres fra en database
2) Et felt med e-mail adresse (er også inkluderet i databasen)
3) Et skjult felt med navnets primary key (benævnt UI) i databasen

Mit ønske er at når en person vælger navn fra dropdown menuen indskrives personens email adresse og UI automatisk i de to pågældende felter. Evt. reload af siden er acceptabelt, men vil naturligvis helst undgå det, hvis det er muligt.

/Lars
Avatar billede sn0wflake Nybegynder
05. juli 2002 - 07:46 #1
For kedeligt at programmere og ikke 30 point værd.
Check http://www.dynamicdrive.com for JavaScript eksempler.
Avatar billede senj Nybegynder
05. juli 2002 - 07:55 #2
snowflake>> Hvis du ikke kan kode det, så lad være med at kommentere det! Hvis du gerne vil have noget ud af det, så lig en kommentar alla "Lytter med". Det andet der er sku for dumt!
Avatar billede sn0wflake Nybegynder
05. juli 2002 - 08:02 #3
Undskyld, du har ret. Det er et spørgsmål der er blevet stillet for ofte. Det er kompliceret at løse da det er individuelt hvad brugere ønsker. For at "bidrage" lidt har jeg et spørgsmål:

Er der nogle der kender et valideringsværktøj der er nemt at bruge for alle, a la http://www.srctec.com/webtools/dhtmlmenu/
Avatar billede kasseper Nybegynder
05. juli 2002 - 10:23 #4
Det du skal gøre er at hente alle data ud på en gang, altså
"select navn, email, UI from minTabel"

smide det hele ud på siden sådan at du har en select der ser nogenlunde ud som den du ser i nedenstående snip:

----------------------------------------------
<script>
    function fillout(a)
    {
        email.value = minselect[a].email;
        ui.value = minselect[a].ui;
    }

</script>
<select name="minselect" onChange="fillout(selectedIndex);">
<option email="email1@test.dk" ui="1">navn1
<option email="email2@test.dk" ui="3">navn2
<option email="email3@test.dk" ui="4">navn3
</select>

<input type="text" name="email">
<input type="hidden" name="ui">
--------------------------------------------

attributterne email og ui indeholder jo så de data du henter fra db'erereren...
Avatar billede kasseper Nybegynder
05. juli 2002 - 10:27 #5
så kan man jo altid lave den lidt pænere ved at lægge en 'overskrift' :

<select name="minselect" onChange="fillout(selectedIndex);">
<option email="" ui="">---Select a name from the list---
<option email="email1@test.dk" ui="1">navn1
<option email="email2@test.dk" ui="3">navn2
<option email="email3@test.dk" ui="4">navn3
</select>
Avatar billede lklingenberg Nybegynder
05. juli 2002 - 12:30 #6
Jeg er bestemt ny ift. javascript og det er muligt mit (nye) problem er banalt (det skulle være nok til holde snowflake væk). Hvis rullemenuen er 'omsluttet' af en <form> får jeg problemer. Jeg får en email undefined error:

----------------------------

<script>
    function fillout(a)
    {
    email.value = minselect[a].email;
    ui.value = minselect[a].ui;
    }
</script>

<form action="actionpage.asp" method="post" name="frmLogin">
   
<select name="minselect" onChange="fillout(selectedIndex);">
    <option email="email1@test.dk" ui="1">navn1</option>
    <option email="email2@test.dk" ui="3">navn2</option>
    <option email="email3@test.dk" ui="4">navn3</option>
</select>

<input type="text" name="email">
<input type="hidden" name="ui">
<input type="button" name="btnSubmit" value="Send">

</form>

----------------------------
Avatar billede kasseper Nybegynder
05. juli 2002 - 12:34 #7
Og det er fordi at når du omslutter noget i en form, så kan du ikke referere det globalt, så skal du ført referere til formen og siden til dit input felt. Skift fillout funktionen ud med :

function fillout(a)
    {
    frmLogin.email.value = minselect[a].email;
    frmLogin.ui.value = minselect[a].ui;
    }


Go fornøjelse
Avatar billede kasseper Nybegynder
05. juli 2002 - 12:35 #8
ført >> først
:)
Avatar billede lklingenberg Nybegynder
05. juli 2002 - 13:26 #9
Så skal det vel være...

function fillout(a)
    {
    frmLogin.email.value = frmLogin.minselect[a].email;
    frmLogin.ui.value = frmLogin.minselect[a].ui;
    }

...for at det giver mening (og virker)...?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester