/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
vise data fra dropdown i formu
Fra : hubi
Vist : 1382 gange
200 point
Dato : 30-01-09 15:50

Hej.

jeg har lavet en asp side med følgende forms:

formular.asp
drop down menu
-person1
-person2
-person3

navn
efternavn
alder
by
billede upload

kunne godt tænke mig at ma kunne vælge fx. person 2 i drop down menuen og så kommer person2's data op i de forms jeg har lavet, så kan man rette i det og gemme det igen i databasen...

muligt?? :/

 
 
Kommentar
Fra : LisBJensen


Dato : 30-01-09 16:49

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

Kommentar
Fra : justuniverse


Dato : 30-01-09 17:07

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

Kommentar
Fra : justuniverse


Dato : 30-01-09 18:37

Jeg har brug for lidt flere detaljer, hvis jeg skal kunne hjælpe.

Må jeg se noget af det kode, du forsøger med?

Kommentar
Fra : hubi


Dato : 30-01-09 19:54

ja altså jeg prøver med det her, og selv med min sølle viden om asp kan jeg da se der er noget galt :/ hvis der står hans i feltet navn i databasen og hansen i feltet efternavn i databasen så skal det bare hentes ind i formularfelterne hvor efter man kan redigere dem og trykke gem

Kode
<html>
<head>
<title></title>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

strSQL = "Select * From personer WHERE ID ="

<form method="POST" action="">
<input type="text" value="<%= Request.Form("navn") %>">
<input type="text" value="<%= Request.Form("efternavn") %>">
<p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>

</form>


Conn.Close
Set Conn = Nothing
%>

</body>
</html>


Kommentar
Fra : hubi


Dato : 30-01-09 19:57

ID er bare = autonummerering så hvis jeg i rullemenuen vælger 1 så kommer de data frem der har fået ID nummeret 1

Kommentar
Fra : justuniverse


Dato : 30-01-09 21:03

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?

Kommentar
Fra : hubi


Dato : 30-01-09 21:13

nestede tags er vidst kun asp.net.

hmm hvis jeg skal være ærlig så hjalp det ikke, jeg er ikke selv nogen ørn til asp


Kommentar
Fra : justuniverse


Dato : 30-01-09 21:31

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 21:38

det ved jeg slet slet ikke noget om....

Kommentar
Fra : hubi


Dato : 30-01-09 23:26

jeg har fundet det link her hvis det er til hjælp :/

http://www.eksperten.dk/spm/5056

Kommentar
Fra : justuniverse


Dato : 30-01-09 23:36

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.

Kommentar
Fra : hubi


Dato : 30-01-09 23:49

det er ikke med vilje jeg er besværlig, men har lidt svært ved at sætte de ting du skriver der sammen, så tror jeg lige ser an om der er andre der har en mulig måde at lave det på...

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

Godkendelse af svar
Fra : hubi


Dato : 31-01-09 00:43

Tak for svaret justuniverse. jeg lukker spørgsmålet og går i tænkeboks

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.
Søg
Reklame
Statistik
Spørgsmål : 177413
Tips : 31962
Nyheder : 719565
Indlæg : 6407803
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste