Avatar billede lsskaarup Nybegynder
16. november 2005 - 11:10 Der er 18 kommentarer og
1 løsning

Skifte mellem tom/udfyldt på andet felt via drop-down

Jeg har en drop-down menu. Som standard står den som tom, men når brugeren vælger et andet punkt i listen, så tilføjes der en dato til et andet felt. Jeg tænkte om man kunne lave det sådan, at hvis brugeren så ikke vælger det tomme punkt, så skal datofeltet tømmes igen.

Koden:
<?php
echo '<select name="r538" size="1" class="listform" style="width:200px;" onChange="ds.r553a.value=\''.date('d-m-Y').'\';">';
?>
Avatar billede mm12010 Nybegynder
16. november 2005 - 11:26 #1
sådan?

onchange="if(this.value!="")ds.r553a.value=\''.date('d-m-Y').'\';"
Avatar billede lsskaarup Nybegynder
16. november 2005 - 11:39 #2
nope
Avatar billede mm12010 Nybegynder
16. november 2005 - 11:47 #3
sådan så?

onchange="ds.r553a.value=(this.value=="")?\''.date('d-m-Y').'\':\'\';"
Avatar billede lsskaarup Nybegynder
16. november 2005 - 12:01 #4
Nej, det virker heller ikke
Avatar billede mm12010 Nybegynder
16. november 2005 - 12:07 #5
kan du prøve at uddybe dit ønske lidt nærmere?
Avatar billede lsskaarup Nybegynder
16. november 2005 - 12:56 #6
Jeg kan prøve.

* En rullemenu (r538) indeholder nogle personer + plus en tom, som vises som standard
* Et datofelt (r553b) - er blevet ændret fra 'a' til 'b'
* Når der vælges en person i rullemenuen, skal dags dato indsættes i datofeltet. Det virker nu
* Hvis man i rullemenuen vælger den tomme, så skal datofeltet tømmes, altså være tomt. Det er ønsket.
Avatar billede roenving Novice
16. november 2005 - 12:59 #7
Så virker begge mms forslag vel også ?-)
Avatar billede lsskaarup Nybegynder
16. november 2005 - 13:34 #8
Ja, skulle man tro, men der sker intet
Avatar billede roenving Novice
16. november 2005 - 13:36 #9
Hvordan ser koden ud, når den rammer browseren ?-)
Avatar billede lsskaarup Nybegynder
16. november 2005 - 13:44 #10
Ved
onchange="if(this.value!="")ds.r553a.value=\''.date('d-m-Y').'\';" :

<td>
<select name="r538" size="1" class="listform" style="width:200px;" onchange="if(this.value!="")ds.r553b.value='16-11-2005';">

                <option value=""></option>
                                    <option value="11883" selected>Aage Hald (AHA)</option>
                                    <option value="11971">Claus Nauntoft (CNA)</option>
                                    <option value="12118">Gustav Ibh Iversen (GII)</option>
                                    <option value="11949">Henning V. Olesen (HVO)</option>
                                    <option value="12093">Jon Axel Lybæk (JLY)</option>
                                    <option value="12115">Niels Kallehave Sørensen (NKA)</option>
                                    <option value="11863">Rene Haderslev (RHA)</option>
                                    <option value="12101">Sivabalan Ayampillai (SIA)</option>
                            </select>
        </td>

Ved onchange="ds.r553a.value=(this.value=="")?\''.date('d-m-Y').'\':\'\';":

        <td>
<select name="r538" size="1" class="listform" style="width:200px;" onchange="ds.r553b.value=(this.value=="")?'16-11-2005':'';">

                <option value=""></option>
                                    <option value="11883" selected>Aage Hald (AHA)</option>
                                    <option value="11971">Claus Nauntoft (CNA)</option>
                                    <option value="12118">Gustav Ibh Iversen (GII)</option>
                                    <option value="11949">Henning V. Olesen (HVO)</option>
                                    <option value="12093">Jon Axel Lybæk (JLY)</option>
                                    <option value="12115">Niels Kallehave Sørensen (NKA)</option>
                                    <option value="11863">Rene Haderslev (RHA)</option>
                                    <option value="12101">Sivabalan Ayampillai (SIA)</option>
                            </select>
        </td>

Begge laver dog fejl under load af siden, men jeg kan ikke nå at se hvilke fejl det er.
Avatar billede roenving Novice
16. november 2005 - 13:52 #11
Hvad er variablen ds for noget ?-)

-- iøvrigt vil jeg i den slags kode foretrække at bruge .selectedIndex, selv om det ikke skulle spille nogen trille, og også foretrække den ternære operator:

<select name="r538" size="1" class="listform" style="width:200px;" onchange="this.form.r553b.value=this.selectedIndex>0?'16-11-2005':'';">
Avatar billede mm12010 Nybegynder
16. november 2005 - 13:55 #12
grunden til at det andet fejler er selvfølgelig fordi jeg har brugt " i stedet for ' som det jo selvfølgelig skal være når det står  i en eventhandler der afgrænses af "

onchange="if(this.value!=\'\')ds.r553a.value=\''.date('d-m-Y').'\';"
onchange="ds.r553a.value=(this.value==\'\')?\''.date('d-m-Y').'\':\'\';"
Avatar billede lsskaarup Nybegynder
16. november 2005 - 15:29 #13
ds er formens navn. Jeg har selv tænkt på index, men kunne sgu´ ikke lige huske, hvad det hed.

Med hensyn til " kontra ', så har jeg også forsøgt både med " og ' samt med og uden \. Hvilket gav... ingen forskel :-)
Avatar billede roenving Novice
16. november 2005 - 15:39 #14
<?php
echo '<select name="r538" size="1" class="listform" style="width:200px;" onchange="this.form.r553b.value=this.selectedIndex>0?\''.date('d-m-Y').'\':\'\';">'
?>
Avatar billede lsskaarup Nybegynder
16. november 2005 - 16:18 #15
roenving, så kom den til at virke. Takker
Avatar billede lsskaarup Nybegynder
22. november 2005 - 12:08 #16
Ligger du et svar
Avatar billede roenving Novice
22. november 2005 - 16:11 #17
Det må vel være en deler ?-)

Velbekomme '-)
Avatar billede lsskaarup Nybegynder
22. november 2005 - 19:32 #18
Tja, roenving, det var dit svar der virkede, selvom de ligger meget tæt op af hinanden.
Avatar billede roenving Novice
22. november 2005 - 22:42 #19
-- det er jo det med alle gnyfferne, som kan give alle de håbløse problemer ...

Prøv en anden gang at skrive den html-kode, du vil have ud af det, del strengen i det, der skal genereres af php-koden, og det, som er statisk ...

-- sæt så de nødvendige gnyffer omkring og i den proces skal du så huske at escape den slags streng-delimiters, du bruger til din php-streng-definition, altså f.eks.

<select name="r538" size="1" class="listform" style="width:200px;" onchange="this.form.r553b.value=this.selectedIndex>0?'16-11-2005':'';">

bliver til:

<select name="r538" size="1" class="listform" style="width:200px;" onchange="this.form.r553b.value=this.selectedIndex>0?'
.date('d-m-Y').
':'';">

og så til enten:

'<select name="r538" size="1" class="listform" style="width:200px;" onchange="this.form.r553b.value=this.selectedIndex>0?\''
.date('d-m-Y').
'\':\'\';">'

eller

"<select name=\"r538\" size=\"1\" class=\"listform\" style=\"width:200px;\" onchange=\"this.form.r553b.value=this.selectedIndex>0?'"
.date('d-m-Y').
"':'';\">"

-- els tak for point ;~}

>>mm12010

-- din andel her: http://www.eksperten.dk/spm/666626 !-)
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