Avatar billede jjense21 Nybegynder
16. maj 2001 - 00:01 Der er 4 kommentarer og
2 løsninger

kan det klares ?

Jeg har et php-program hvori jeg opretter og udfylder en <select><option>-box , udfra nogle poster i en database.
Under comboboxen har jeg et alm. text-felt. Jeg ønsker at lave det sådan , at hvis man vælger noget i comboboksen, så bliver text-feltet udfyldt med den valgte værdi. Indeholder combo-boxen f.eks. rød,gul og blå, og man vælger gul, så udfyldes nedenstående text-felt med teksten gul.
Jeg går udfra at fremgangsmåden er at lave en onchange event på <select>, og ved denne event sætte tekstboksens variabel lig med comboboksens(<select>) værdi. JEg synes bare ikke det virker.
Kan det være fordi onchange-eventen først indtræder når formen bliver submitted ?
Det skal helst ske uden at formen behøves at blive submitted først, kan det klares ?

mvh.Jesper
Avatar billede stigc Nybegynder
16. maj 2001 - 00:03 #1
her lidt hurtigt, som virker:


<form name=\'form1\' >
<select name=\"noget\" onChange=\"java script:document.form1.tekstfelt.value=this.value;\">
<option value=\'gul\'>gul</option>
<option value=\'sort\'>sort</option>
</select>
<input type=text name=\'tekstfelt\'>
</form>
Avatar billede jjense21 Nybegynder
16. maj 2001 - 00:58 #2
Ja, det virker , men jeg formulerede mig ikke helt præcist. Egentlig er jeg ikke interesseret i at udskrive value fra det valgte objekt da dette svarer til objektets id. Jeg skal derimod have fat på navnet tilhørende id´et (navnet er også teksten i comboboksen)
Jeg kender ikke meget til javascript, men jeg har forøgt mig lidt frem. JEg får dog en fejl, måske har jeg blandet php og javascript lidt for meget :-)
onchange på selecten har jeg fået til at se sådan ud:

onChange=\"<? $filmen=FindFilmForID($filmCB) ?> java script:document.adm.titel.value=<? echo \\\"$filmen[titel]\\\" ?> \">

FindFilmForID er bare en lille hjælpefunktion jeg har lavet, for ikke at gøre onchange-eventen endnu mere uoverskuelig end den er i forvejen, men her den:

function FindFilmForID($id){
    $sql=\"select titel from film where id=\\\"$id\\\"\";
    $res=mysql_query($sql);
    $the_row=mysql_fetch_array($res);
    return \"$the_row\";
}

Håber jeg har formuleret mig klart nok (det kan være meget svært :-)
Avatar billede jakoba Nybegynder
16. maj 2001 - 07:20 #3
Jep gevaldig svært :)
svaret er essentielt det samme stigc allerede har givet:
<form name=\'form1\' >
<select name=\"noget\" onChange=\"java script:document.form1.tekstfelt.value=this.options[this.selectedIndex].text;\">
<option value=\'gul\'>gul</option>
<option value=\'sort\'>sort</option>
</select>
<input type=text name=\'tekstfelt\'>
</form>

mvh JakobA
Avatar billede jjense21 Nybegynder
16. maj 2001 - 11:47 #4
ja, det virker jo også, jeg mangler du lige en ting :-)
Jeg ville allerhelst gå i databasen og finde det objekt med det valgte ID(en <options>-value svarer til et objekts ID. Hvis jeg kunne få fat i objektet kunne jeg nemlig også udskrive nogle af objektets andre attributter(hvilket jeg får brug for senere)
Som I kan se i mit tidligere indlæg har jeg forsøgt at blande lidt php ind i onchange-eventen på <select>´en
onChange=\"<? $filmen=FindFilmForID($filmCB) ?> java script:document.adm.titel.value=<? echo \\\"$filmen[titel]\\\" ?> \">

men det virker ikke,
er det tæt på, eller langt fra målet ?
:-)

Jesper
Avatar billede jakoba Nybegynder
16. maj 2001 - 14:02 #5
For at hente supplerende data fra databasen skal du lave en reload af en eller anden side. det koster tid.

Hvad med bare at skrive de ønskede data ind i <option value=\"...\" idet du genererer din liste af options det vil give væsentlig hurtigere respons når klienten trykker:

<select name=\"noget\" onChange=\"java script:document.form1.tekstfelt.value=this.options[this.selectedIndex].value;\">
<option value=\'gul a 25.85kr i bomuld\'>gul</option>
<option value=\'sort a 69.45kr i silke\'>sort</option>

mvh JakobA
Avatar billede jjense21 Nybegynder
16. maj 2001 - 14:15 #6
tjoo, det var måske en idé, tak for hjælpen
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