|
|
Hej
Har du kigget her: http://www.asp.net/ om der ikke skulle være nogle forslag til løsninger under Learn ASP.net eller i deres wiki forum
Lis
| |
|
Selvom det er i asp kan det gøres med almindeligt HTML kombineret med javascript.
Kode <html>
<head>
<script>
function populateForm(name) {
switch (name) {
case 'Navn1':
document.getElementById('fornavn').value = name;
document.getElementById('efternavn').value = 'Svendsen';
document.getElementById('adresse').value = 'Vibevej 27';
break;
case 'Navn2':
document.getElementById('fornavn').value = name;
document.getElementById('efternavn').value = 'Hansen';
document.getElementById('adresse').value = 'Parallelvej 21';
break;
case 'Navn3':
document.getElementById('fornavn').value = name;
document.getElementById('efternavn').value = 'Pederssen';
document.getElementById('adresse').value = 'Skolevej 6';
break;
(osv....)
}
}
}
</script>
</head>
<body>
<form>
<select name='navn' onchange='populateForm(this.options[this.selectedIndex].text)'>
<option>Navn1</option>
<option>Navn2</option>
<option>Navn3</option>
</select>
<input type='text' id='fornavn'><br>
<input type='text' id='efternavn'><br>
<input type='text' id='adresse'><br>
.........
</form>
</body>
</html> |
... tror jeg ok...
| |
| Kommentar Fra : hubi |
Dato : 30-01-09 18:28 |
|
jeg kan ikke få det til at virke.... har en access database med navn1, navn2, navn3 og hvis jeg vælger navn2 i rulle-mnuen skal navn2's data komme frem i felterne, det sker bare ikke rigtig :/
hver persons ID er i det her tilfælde navn1 navn2 navn3 kunne også være autonummerering som access selv gør
| |
|
Jeg har brug for lidt flere detaljer, hvis jeg skal kunne hjælpe.
Må jeg se noget af det kode, du forsøger med?
| |
|
Hmm.. nu ved jeg ikke om det er bevidst, at der ikke er noget javascript i dit eksempel, der kan sørge for tildelingen af værdier på baggrund af det valgte navn i dropdown-menuen?
Men jeg er ikke nogen ørn til asp.. dog vil jeg lige spørge: Kan/må man godt lave "nestede" asp-tags...
Som feks.:
Kode ' Det ydre starttag...
<%
' "Nested" tag...
<input type="text" value="<%= Request.Form("navn") %>">
' Det ydre sluttag...
%> |
????
Forresten... Skal værdien, som formen bliver fyldt ud med ikke comme fra det, der bliver hentet fra databasen?
Ved feks at skrive noget i retning af:
data = Conn.Execute(strSQL)
Og derefter i stedet for <input type="text" value="<%= Request.Form("navn") %>">
som så måske skulle hedde noget i retning af:
<input type="text" value="<%= data("navn") %>">
??? (som sagt er jeg ikke nogen asp-ørn... men måske hjælper det?
| |
|
Hmn.. ok.
Men under alle omstændigheder mener jeg, at man kun kan tilgå en Access-database, hvis manb i forvejen på systemet har defineret en ODBC-navngivning (ODBC-DSN) på serveren... kan det ikke passe?
| |
| Kommentar Fra : hubi |
Dato : 30-01-09 23:26 |
| | |
|
Næh.. Men den egentlige pointe i det tidligere, jeg skrev var, at du skal tænke over, hvor du henter de data fra, som du gerne vil have ud i felterne. De kommer ikke fra Request, for der har jo ikke været noget request endnu, der indeholder data.
Med det javascript, jeg lavede i starten skal du skifte mine "hardkodede" navn og adresse ud med de værdier, der måtte være i det, du får returneret fra din sql.
Derfor:
Citat data = Conn.Execute(strSQL)
Og derefter i stedet for <input type="text" value="<%= Request.Form("navn") %>">
som så måske skulle hedde noget i retning af:
<input type="text" value="<%= data("navn") %>"> |
(Hvis det altså er sådan, man gør...)
<%= Request.Form("navn") %> vil helt sikkert returnere "" (altså ingen tekst) for der er jo netop ikke indtastet noget i formen endnu.
Det giver kun mening at "hente" værdier fra Request.Form(...) efter, at der er trykket submit... og det er vel at mærke i den asp-fil, der er angivet i "action"-attributten.
| |
| Accepteret svar Fra : justuniverse | Modtaget 200 point Dato : 31-01-09 00:03 |
|
Når man åbner hjemmesiden første gang for at se en tom formular bliver der sendt en "request" til serveren. (Som sagt tom formular.. så hverken felterne eller requestet indeholder nogen værdier, når man åbner siden første gang.)
Så vil man typisk laver formularen sådan her:
<form method='get' action='den_samme_side_som_er_en_asp_side.asp'>
så efter, at der er blevet trykket på "submit" vil siden åbne sig igen. Men nu ligger værdierne fra den udfyldte formular i requested, så man kan putte dem ind i felterne ved at bruge Request.Form(...)
Men det, du skal, er allerede på "den første side" at lave noget dynamisk (jvf. det javascript, jeg sendte) så felterne kan fyldes ud med data fra din sql - FØR der trykkes på "submit".... men i stedet hver gang, der bliver valgt et nyt navn i din drop-down. (derfor
Kode <select onchange='populateForm(this.options[this.selectedIndex].text)'> |
populateForm() er den javascriptmetode, jeg sendte med. Metoden tager et argument (nemlig navnet)
Netop det valgte navn bliver sendt med til metoden ved at skrive
Kode this.options[this.selectedIndex].text) |
"this" referer til <select>-objektet og den består dybest set af et array af "options". Den aktuelt valgte har et bestemt nummer i det array... nemlig [this.selectedIndex] - og det er dens "text", der indeholder navnet (f.eks. "Navn2")
Men held og lykke
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|