Hej Ng,
Det irreterer mig en anelse, at jeg ikke kan få følgende til at virke:
Jeg har en adresseliste i en mysql-database, som personerne kan rette selv.
Man skal i en select-boks vælge det navn, man vil rette. Jeg opretter
select-boksen på følgende måde (jeg har komprimeret koden en del for
overblikkets skyld):
<select name="slctnavn"
onchange="javascript:location.href='default.asp?main_id=adresser_skriv&navn_
id=' + this.value;">
<option>-- Vælg dit navn --</option>
<%
'Opret elementer i selection boksen
dim navnID
navnID = request.querystring("navn_id")
"Her står en masse kode, der opretter forbindelse til databasen"
'Gennemløb recordset og opret option-element med unik value ud fra
ID i databasen
do
response.write "<option value = '" & rs("ID") & "'"
'Hvis navnID stemmer overens med navnet i boksen, skal det
"markeres"
if int(navnID) = rs("ID") then
response.write " selected"
end if
response.write ">" & rs("navn") & "</option>"
rs.movenext
loop while not rs.eof
%>
</select>
Dette virker fint nok. Nedenunder denne select-boks har jeg så nogle
tekstinput, hvori oplysninger (adresse, tlfnummer, osv.) skal komme frem, så
snart et navn i selection-boksen vælges. Dette kan jeg gøre på følgende
måde:
<input type="text" name="txtnavn" value = "
<%
if navnID <> empty then
strSQL = "select * from adresser where id = '" & int(navnID) & "'"
set rs = conn.execute(strSQL)
response.write rs("navn")
end if
%>">
hvilket så skal gøres igen og igen i hvert input-felt - men det virker. Det
er ret besværligt, da der er en del inputs, så jeg tænkte, at jeg kunne
lægge koden ind i en sub-rutine, f.eks:
public sub get_info(felt)
if navnID <> empty then
strSQL = "select * from adresser where id = '" & int(navnID) & "'"
set rs = conn.execute(strSQL)
response.write rs(felt)
end if
end sub
og så kalde rutinen ved
<input type="text" name="txtnavn" value="<% call get_info("navn") %>">,
men der kommer en fejlmeddelelse, der fortæller, at "typerne stemmer ikke
overens: get_info"
Jeg prøvede så, at lave rutinen om til en funktion:
function sub get_info(felt)
if navnID <> empty then
strSQL = "select * from adresser where id = '" & int(navnID) & "'"
set rs = conn.execute(strSQL)
get_info = rs(felt)
end if
end function
men det virker heller ikke (samme fejlmeddelelse). Hvad dælen er der galt?
Endvidere synes jeg også, at det går en anelse langsomt, fra man ændrer navn
i select-boksen til adressedata kommer frem i tekstinput's, og jeg tror, det
kan laves anderledes - nogen idéer?
Hvis min ide ikke fremstår tydeligt nok, kan i kigge på
http://3zvag.lir.dk/default.asp?main_id=adresser_skriv (kodeordet er
"3zvag" - men sig det nu ikke til nogen ;) og lad venligst være med at rette
i listen!)
--
Jens Pedersen