/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Opdatering i drop-down (form)
Fra : Carsten Christensen


Dato : 17-01-05 09:26

Hej

Jeg har to <form> drop-down menuer, hvor den ene skal være
afhængig af den anden ligesom bilvalg på www.bilbasen.dk

Jeg vil gerne lave det som de har gjort, således at man ikke ser
siden opdaterer..

Det skal bruges til at hente oplysninger fra en database.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Carsten Christensen (17-01-2005)
Kommentar
Fra : Carsten Christensen


Dato : 17-01-05 10:26

Lige en tilføjelse..

kan jeg lave det med "action"?
<form method="post" action=".......


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (17-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-01-05 10:31

Carsten Christensen skrev:

> Jeg har to <form> drop-down menuer, hvor den ene skal være
> afhængig af den anden ligesom bilvalg på www.bilbasen.dk

Hos Bilbasen er det scriptet her der laver opdateringen:

<http://www.bilbasen.dk/includes/maerkescript.js>

Det kræver at samtlige data hentes først - og giver dermed længere
loadtid på siden, men til gengæld hurtige skift mellem de
forskellige valg.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Carsten Christensen (17-01-2005)
Kommentar
Fra : Carsten Christensen


Dato : 17-01-05 10:57

> Det kræver at samtlige data hentes først - og giver dermed længere
> loadtid på siden, men til gengæld hurtige skift mellem de
> forskellige valg.

Okay, så vil jeg hellere lave det på den anden måde..

Hvordan får man menuen til at opdatere siden så snart man har valgt
et mærke? Jeg har selv lige strikket noget sammen, men den opdaterer
ikke (action="default.asp").
se evt. www.aed.dk/pris

Min asp-kode ser således ud
<form method="post" action="default.asp">
<select size="1" name="fabri">
<option selected="selected" disabled>:: M&aelig;rke ::</option>
<%
dim rs,strSQL
strSQL = "SELECT DISTINCT(maerke) FROM model"
Set rs = cn.Execute(strSQL)

Do
Response.Write "<option>" & rs("maerke") & "</option>"
rs.MoveNext
Loop While Not rs.EOF
%>
</select>
</form>

Er det måden at gøre det på, når jeg ikke vil sidde og skrive alle
bilmærker op?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (17-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-01-05 11:46

Carsten Christensen skrev:

> Hvordan får man menuen til at opdatere siden så snart man har
> valgt et mærke?

Med et javascript på onchange-hændelsen på din select.


Fx som her (ikke testet):

<form method="post" name="f" action="default.asp">
<select size="1" name="fabri"
   onchange="document.forms['f'].submit()">


> Er det måden at gøre det på, når jeg ikke vil sidde og skrive
> alle bilmærker op?

Det er en mulighed. Men jeg skal lige gøre opmærksom på at du jo
ikke behøver at skrive alle bilmærkerne op i hånden. Det javascript
man kan se på bilbasen.dk er givetvis genereret af et script - og
ikke indtastet manuelt.

Men fordelen ved at gøre som bilbasen er, udover de hurtige
opdateringer af selectboks nr. 2, at der spares en masse
databaseopslag. Hvis der skal foretages et opslag i databasen hver
gang en bruger vælger et bilmærke - samt hver gang han/hun går ind
på forsiden - så bliver det til mange opslag. Det kan gøre sitet
tungt, specielt ved mange brugere.

Bilbasens løsning er smart fordi javascriptet kan caches og
bilmærkerne dermed ligger lokalt hos hver enkelt bruger. Det kan
være et problem hvis man opdaterer mærkelisterne flere gange om
dagen, men så tit kommer der jo ikke nye bilmodeller.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Carsten Christensen (17-01-2005)
Kommentar
Fra : Carsten Christensen


Dato : 17-01-05 13:54

> Med et javascript på onchange-hændelsen på din select.
>
>
> Fx som her (ikke testet):
>
> <form method="post" name="f" action="default.asp">
> <select size="1" name="fabri"
>    onchange="document.forms['f'].submit()">

Okay, det ser ud til at fungere. Men jeg kan ikke requeste det jeg
sender!
http://www.aed.dk/pris/default.asp

Hvorfor kan jeg ikke se begge drop-down menuer på én gang? Der er
måske en detalje ved asp jeg har overset??

Håber nogen kan hjælpe.. Nedenfor er et udpluk af koden

<form method="post" action="default.asp" name="fabriform">
<select size="1" name="fabri" id="maerke" onChange="maerke()">
<option selected="selected" disabled>::V&aelig;lg
m&aelig;rke::</option>
<%
dim rs,strSQL
strSQL = "SELECT DISTINCT(maerke) FROM bil"
Set rs = cn.Execute(strSQL)

Do
Response.Write "<option>" & rs("maerke") & "</option>"
rs.MoveNext
Loop While Not rs.EOF
%>
</select>
</form>
</td>
<td>
<form method="post" action="default.asp" name="modelform">
<select size="1" name="model" id="maerke">
<option selected="selected" disabled>::V&aelig;lg
model::</option>
<%
dim strmaerke
Set maerke = Request.Form("fabri")
strSQL = "SELECT model FROM bil WHERE maerke=strmaerke"
Set rs = cn.Execute(strSQL)


Do
Response.Write "<option>" & rs("model") & "</option>"
rs.MoveNext
Loop While Not rs.EOF
%>
</select>
</form>


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (17-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-01-05 15:15

Carsten Christensen skrev:

> Okay, det ser ud til at fungere.

Ikke her.

Du har lavet en funktion "maerke" der tager ét argument - men du kalder
den uden argumenter. Den slags fungerer ikke (i hvert fald ikke i
Firefox).

Jeg forstår heller ikke hvorfor du vælger at submitte formen via
nonstandardmetoden document.FORMNAVN.submit(), når jeg nu foreslog en
fungerende standardmetode: document.forms['FORMNAVN'].submit()

Jeg kan se af din kode at du har en asp-fejl på den anden select-boks
(linje 141 "No value given for one or more required parameters.").
Den skal du nok også have ryddet af vejen.

> Men jeg kan ikke requeste det jeg sender!

Måske er det fordi du bruger ét id (maerke) og et andet navn (fabri).
Det er en meget dårlig ide - nogle browsere vil bruge id, mens andre vil
bruge name. Hvis du angiver begge parametre, *skal* de være ens.



> dim strmaerke
> Set maerke = Request.Form("fabri")
> strSQL = "SELECT model FROM bil WHERE maerke=strmaerke"

4 fejl.

a) Du bruger strmaerke i linje 1 og 3, men maerke i linje 2.
b) Du requester på name-attributten der er forskellig fra id-attributten
(se ovenfor)
c) strmaerke i linje 3 optræder som tekst, ikke som variabel.
d) Der skal anførselstegn om strengværdien i linje 3.

Tag et kig forbi asp-tutorialen på html.dk - specielt siderne om
databaser: <http://html.dk/tutorials/asp/>. Der er et par grundlæggende
ting du har fået galt fat i.


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste