16. maj 2001 - 00:01Der 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 ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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:
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 :-)
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>
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 ? :-)
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>
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.