Avatar billede Jman Praktikant
06. august 2003 - 16:26 Der er 32 kommentarer og
1 løsning

Dropdown med kort beskrivelse nedenunder (databasestyret)

Hvordan kan man lave et script/asp-kald, hvor man henter afdelinger ind i en dropdownmenu og så nedenunder står der en beskrivelse?

Jeg har databasen [ID] [Betegnelse] [Beskrivelse]

Jeg har også lavet dropdown-delen:
<option value="vælg">Vælg afdeling</option>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")
sql="SELECT Distinct Betegnelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse"
set rs = conn.execute(sql)
Do While Not rs.EOF %>
<option value="inc_opgave.asp.asp?ansvarlig=<%=betegnelse%>" "selected"><%=betegnelse%></option>
<% rs.MoveNext
  Loop
  rs.Close %>
</select>

Jeg vil så have tilføjet, så når man har valgt et punkt i Dropdown'en, så skal der komme en beskrivende tekst af det valgte (altså inden man affyrer formen)
Avatar billede Jman Praktikant
06. august 2003 - 16:43 #1
Ligesom her - blot med kald i database: http://www.dynamicdrive.com/dynamicindex1/combodescribe.htm
Avatar billede roenving Novice
06. august 2003 - 16:45 #2
Hvis betegnelsen kan tåle at være javascript-variabel (ingen mellemrum, æøå, kommaer ol. _kun_ bogstaver/tal + _ -- og tal må ikke være forrest!-), kan du jo lave en lille javascript-database og kalde den onchange:

<script language="javascript" type="text/javascript">
var beskr = new Array();
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")
sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse"
set rs = conn.execute(sql)
Do While Not rs.EOF %>
beskr[<%=betegnelse%>] = <%=beskrivelse%>;
<% rs.MoveNext
  Loop
  rs.Close %>
</script>

-- og så hente værdien:

<select name="sel" onchange="document.getElementById('beskrivelse').value=beskr[this.options[selectedIndex].text];"
Avatar billede roenving Novice
06. august 2003 - 16:48 #3
-- og måske er det mere opportunt at bruge en span og innerHTML -- og der mangler også standard-værdien, som enten skal hentes onload eller sættes vha. en variabel fra den kode som genererer options ...

Men det tror jeg du selv kan klare -- eller også skal jeg lige have nogle stumper kode mere !-)
Avatar billede Jman Praktikant
06. august 2003 - 16:57 #4
roenvig - hvad er er forksellen i varibalen for hvad dne må indholder?

Der er desværre et par afdelinger, der indeholder / og &, så det skal den kunne håndtere
Avatar billede roenving Novice
06. august 2003 - 17:11 #5
Der var jeg zq for bange for hvad javascript vil kunne klare:

alert(x['karl&hans']+'\n'+x['b/hu']+'\n'+x['jørg en'])

klarede den uden problemer -- så jeg ved ikke hvor grænsen for tekst-strenge findes i den sammenhæng, men alle dine tilfælde skulle ihvertfald virke !-)

-- og så opdagede jeg jo lige en fejl ved denne gennemgang:

beskr['<%=betegnelse%>'] = '<%=beskrivelse%>';
Avatar billede Jman Praktikant
06. august 2003 - 17:22 #6
mangler der ikke noget i <select .... ?
Avatar billede roenving Novice
06. august 2003 - 17:26 #7
Jo, sådan en fætter skal jo også lukkes ,-)
>
Avatar billede Jman Praktikant
06. august 2003 - 17:31 #8
hmm - jeg kan squdde få det til at virke.. Nu er jeg heller ike enørn til javascript
---------------------------------------
<script language="javascript" type="text/javascript">
var beskr = new Array();
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")
sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse"
set rs = conn.execute(sql)
Do While Not rs.EOF %>
beskr['<%=betegnelse%>'] = '<%=beskrivelse%>';
<% rs.MoveNext
  Loop
  rs.Close %>
</script>

<select name="sel" onchange="document.getElementById('beskrivelse').value=beskr[this.options[selectedIndex].text];">
<option value="vælg">Vælg afdeling</option>
<%    Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")
sql="SELECT Distinct Betegnelse From Afdeling Where prioritet = 1 ORDER BY Betegnelse"
set rs = conn.execute(sql)
Do While Not rs.EOF %>
<option value="<%=rs("Betegnelse")%>" "selected"><%=rs("Betegnelse")%></option>
<%    rs.MoveNext
Loop
rs.Close
conn.close %>    
</select>
Avatar billede roenving Novice
06. august 2003 - 17:41 #9
Beskrivelsen skal med det jeg har lavet stå i et textarea med id="beskrivelse"

-- hvis det skal virke anderledes må du lige forklare lidt nærmere !-)
Avatar billede roenving Novice
06. august 2003 - 17:45 #10
Jeg kan se, at dynamicdrive-linket bruger en span og innerHTML, som jeg snakkede om, og så skal det være:

<select name="sel" onchange="document.getElementById('beskrivelse').innerHTML=beskr[this.options[selectedIndex].text];">


Og så efter </select>:

<br><span id="beskrivelse" style="font-style:italic"></span>
Avatar billede Jman Praktikant
06. august 2003 - 17:51 #11
OK - jeg har lavet en <span id="beskrivelse">, men der kommer ingen beskrivelse . Jeg får ingen fejl på siden, og jeg får da også dropdown med stadig.
Nu spørger jeg måske dumt, meeeen... Skal din kode i <Head>-tagget? For jeg benytter siden som en includefil
Avatar billede Jman Praktikant
06. august 2003 - 17:55 #12
Efter din sidste kommentar, får jeg nu "undefined" direkte under dropdownen .. ?
Avatar billede roenving Novice
06. august 2003 - 18:07 #13
Det virker fuldstændig uproblematisk i min test ...

Kan du ikke smide et link eller noget ?-)
Avatar billede Jman Praktikant
06. august 2003 - 21:04 #14
nej, desværre - for det er et intranet :/
Avatar billede roenving Novice
07. august 2003 - 02:34 #15
Måske var dette fejlen:
<select name="sel" onchange="document.getElementById('beskrivelse').innerHTML=beskr[this.options[this.selectedIndex].text];">

-- kom lige til at se en forglemmelse ,-)
Avatar billede Jman Praktikant
07. august 2003 - 08:21 #16
æv - det virker stadig ikke ... "undefined", står der, når man vælger et punkt. Vil du have mere kode ?
Det skal lige siges at det er op imod en SQL database, hvis det ændrer noget
Avatar billede roenving Novice
07. august 2003 - 13:14 #17
Hvordan ser kilden ud, når du har genereret din side, altså Vis kilde i IE ?-)
Avatar billede Jman Praktikant
07. august 2003 - 13:58 #18
således:

<html>
<head>
<title>- altid hjælp at hente</title>
<meta name="language" content="dan" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<LINK REL="STYLESHEET" TYPE="text/css" HREF="./lib/default_style.css">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" bgcolor="#FFFFFF" style="border-collapse: collapse" bordercolor="#111111">

<!-- Topnavi START-->
  <tr>
    <td height="42">
      <table border="0" cellpadding="0" cellspacing="0" width="100%" height"1" bgcolor="#B8B889">
        <tr bgcolor="#000000" height="1"><td colspan="3"></td></tr>
        <tr width="100%">
          <td class="TopmenuHeader" height="40" rowspan="2" valign="top"><br>&nbsp;Support v.2.0</td>
          <td width="14" height="19" valign="top"><img src="images/rundkant.gif"></td>
          <td class="TopmenuTxtLight" width="275" height="21" bgcolor="#000000">&nbsp;&nbsp;<a class="Topmenu" href="#">Admin</a>  | <a class="Topmenu" href="#">Forslag</a> | <a class="Topmenu" href="#">F.A.Q.</a></td>
        </tr>
        <tr width="100%">
          <td class="TopmenuTxt" bgcolor="#B8B889"><img src="images/spacer.gif"></td>
          <td class="TopmenuTxt">&nbsp;Du er logget ind som XXX</td>
        </tr>
      </table>
    </td>
  </tr>
<!-- topnavi SLUT -->

<!-- Midt START -->
  <tr bgcolor="#FFFFFF">
    <td height="100%">
      <table bgcolor="#FFFFFF" border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
        <tr><td height="3"></td></tr>
        <tr>
          <!-- menuen START -->
          <td bgcolor="#CACAA8" width="185" valign="top">
            <table border="0" cellpadding="2" cellspacing="5" width="100%" height="100%">
              <tr>
                <td valign="top">

                  <table border="1" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse" bordercolor="#6F6F43" bgcolor="#F7F7F2">
                  <tr>
                  <td>
                  <table border="0" cellpadding="4" cellspacing="0" width="100%" style="border-collapse: collapse" bordercolor="#6F6F43" bgcolor="#F7F7F2">
                    <tr bgcolor="#6F6F43">
                      <td class="rightmenuHeader">Menu:</td></td>
                    </tr>
                    <tr>
                      <td class="rightmenuTxtBld">
                        <a class="rightmenu" href="default.asp?page=inc_default.asp">
                        <img border="0" src="images/arrow-right.gif" width="9" height="9" align="absmiddle">Egne opgaver</a>
                      </td>                       
                    </tr>
                    <tr>
                      <td class="rightmenuTxtBld">
                        <a class="rightmenu" href="default.asp?page=inc_opgave.asp">
                        <img border="0" src="images/arrow-right.gif" width="9" height="9" align="absmiddle">Opret opgave</a>
                        </td>                       
                    </tr>
                    <tr>
                      <td class="rightmenuTxtBld">
                        <a class="rightmenu" href="#">
                        <img border="0" src="images/arrow-right.gif" width="9" height="9" align="absmiddle">Historik</a>
                      </td>                       
                    </tr>
                    <tr>
                      <td class="rightmenuTxtBld">
                        <a class="rightmenu" href="#">
                        <img border="0" src="images/arrow-right.gif" width="9" height="9" align="absmiddle">Driftstatus</a>
                      </td>                       
                    </tr>
                    <tr>
                      <td class="rightmenuTxtBld">
                        <a class="rightmenu" href="#">
                        <img border="0" src="images/arrow-right.gif" width="9" height="9" align="absmiddle">Opgavestatus (afd.)</a>
                      </td>                       
                    </tr>
                    <tr>
                      <td class="rightmenuTxtBld">
                        <a class="rightmenu" href="#">
                        <img border="0" src="images/arrow-right.gif" width="9" height="9" align="absmiddle">Videndeling</a>
                      </td>
                    </tr>
                    <tr bgcolor="#6F6F43">
                      <td class="rightmenuHeader">Din status:</td></td>
                    </tr>
                    <tr>
                      <td class="rightmenuTxt">
                        Du har <b>11</b> uafsluttede opgaver.<br><br>
                        Af dem er <b>9</b> overskredet deadline<br>
                       
                      </td>
                    </tr>
                    <tr>
                      <td class="rightmenuTxt">Der er i alt 171 opgaver, der ikke er afsluttet pr. 07-08-2003.<br>
                      </td>
                    </tr>
                  </table>
                  </td>
                  </tr>
                  </table>
                </td>
              </tr>
            </table>
          </td>
          <!-- menuen SLUT -->

          <!-- dividers -->
          <td width="3" bgcolor="#6F6F43" valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
          <td width="5" valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
          <!-- dividers -->

          <td valign="top">
          <div valign="center" style="width: 100%; height: 95%; overflow: auto">
          <!-- aktiv rude START -->


            <!-- include file="inc_default.asp"-->
               
<table border="0" cellpadding="0" cellspacing="3" width="100%" bordercolor="#000000" bgcolor=#FFFFFF>
  <tr>
    <td>
      <p class="TblHeader">Du er nu ved at oprette en opgave</p>
      <p class="TblTxtBld">Vælg venligst den afdeling, du ønsker at tildele opgaven</p>
    </td>
  </tr>
  <tr>
    <td class="TblTxtBld">


<script language="javascript" type="text/javascript">
var beskr = new Array();

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

</script>

<select name="sel" onchange="document.getElementById('beskrivelse').innerHTML=beskr[this.options[this.selectedIndex].text];">
<option value="vælg">Vælg afdeling</option>

<option value="Afdeling1" "selected">Afdeling1</option>

<option value="Afdeling2" "selected">Afdeling2</option>

<option value="Afdeling3" "selected">Afdeling3</option>

<option value="Afdeling4" "selected">Afdeling4</option>

<option value="Afdeling5" "selected">Afdeling5</option>

<option value="Afdeling/6" "selected">Afdeling/6</option>

<option value="Afdeling-7" "selected">Afdeling-7</option>
   
</select>

    </td>
  </tr>
  <tr>
    <td><span id="beskrivelse" class="tbltxt">Her kommer beskrivelsen afdelingen</span></td>
  </tr>
  <tr>
</table>
       
          <!-- aktiv rude SLUT -->
          </td>
          </div>
        </tr>
<!-- Midt SLUT -->

<!-- Bund START -->
  <tr><td colspan="3" height="5"></td></tr>
  <tr bgcolor="#B8B889"><td colspan="5"  class="TblTxtSmall" height="15" align="center">Siden blev hentet torsdag d. 07-08-2003&nbsp;kl. 13:53:11</td></tr>
<!-- Bund SLUT -->

</table>
</body>
</html>
Avatar billede Jman Praktikant
07. august 2003 - 13:59 #19
Afdelingerne er - indtil videre - fiktive
Avatar billede roenving Novice
07. august 2003 - 15:15 #20
Så må det være sql-sætningen der er fejl i ...

Måske er nødvendigt at neste forespørgslen, for jeg har ikke den fjerneste anelse om 'Distinct' kan have nogen betydning ...

sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse"

-- Eller måske er det store/små bogstaver ?-)

-- I din oprindelige havde du henvisningerne til asp-variablerne med småt, men med stort i SQL-sætningen, så jeg gik ud fra at det var ligegyldigt, men den kører tydeligvis forespørgslen og det er næsten korrekt output, så prøv lige med:

<script language="javascript" type="text/javascript">
var beskr = new Array();
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")
sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse"
set rs = conn.execute(sql)
Do While Not rs.EOF %>
beskr['<%=Betegnelse%>'] = '<%=Beskrivelse%>';
<% rs.MoveNext
  Loop
  rs.Close %>
</script>
Avatar billede Jman Praktikant
08. august 2003 - 07:54 #21
hmm - det var heller ikke det .. :/
Avatar billede Jman Praktikant
08. august 2003 - 08:10 #22
Jeg har tillige fjernet Distinct - Jeg fandt lige ud af at den ikke behøvede at være her.
Avatar billede roenving Novice
08. august 2003 - 12:58 #23
Hvad så med

sql="SELECT * From Afdeling Where Prioritet = 1 ORDER BY Betegnelse"
Avatar billede roenving Novice
08. august 2003 - 13:00 #24
Forøvrigt sætter du selected på alle dine options, det er jo noget vrøvl, men sikkert ganske ufarligt ...
Avatar billede Jman Praktikant
08. august 2003 - 13:04 #25
nå ja - det har jeg fjerne nu .. men beskrivelsen virker stadig ikke:
<script language="javascript" type="text/javascript">
var beskr = new Array();

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

beskr[''] = '';

</script>
Avatar billede Jman Praktikant
08. august 2003 - 13:10 #26
selv hvis jeg erstatter
beskr['<%=Betegnelse%>'] = '<%=Beskrivelse%>';
med
beskr['<%=Betegnelse%>'] = 'test';
skriver den "unefined"
Avatar billede roenving Novice
08. august 2003 - 13:38 #27
Hov, det ser jo sådan ud, der hvor det virker, jeg er åbenbar ikke vågen nok ...

"<%=rs("Betegnelse")%>"

Så skal det jo være:

beskr['<%=rs("Betegnelse")%>'] = '<%=rs("Beskrivelse")%>';
Avatar billede roenving Novice
08. august 2003 - 13:39 #28
og måske skal ' også være " ...
Avatar billede Jman Praktikant
08. august 2003 - 14:00 #29
Der var den !!!!!
Tuuuuuuuuuuuuuuuuuuuuuuuuusind tak :D
Avatar billede roenving Novice
08. august 2003 - 14:09 #30
Ja, jeg beklager, at min asp-viden er så ringe, at vi skulle så langt omkring ...

-- men velbekomme '-)
Avatar billede Jman Praktikant
08. august 2003 - 14:11 #31
men til målet kom vi - jeg opretter i øvrigt et nyt spørgsmål, for den skal forlænges således at det valgte i dropdownmenuen skal udløse et nyt kald til en ny dropdownmenu med kategorier. Hvis du kan hjælpe der også vil jeg være (omend muligt) mere taknemmelig ;)
Avatar billede roenving Novice
08. august 2003 - 14:19 #32
Jeg takker for points ;~}

-- det andet må vi kigge på !-)
Avatar billede Jman Praktikant
08. august 2003 - 14:28 #33
okay ... link, hvis du alligevel keder dig: http://www.eksperten.dk/spm/385210
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