Jag tänkte ha så att när man vill ändra sin info så kan man göra mer inställningar än vad man skrev
in när man blev medlem. Ex. Intressen, kropp, klädstil mm, detta vill jag göra med "dropdowns"
men fattar inte hur man ska gå till väga för att få den att först från att te x "intressen"-fältet
är tomt till att man efter har valt något typ "webdesign" så ska detta föras in i en databas, och
sedan när man kanske en annan gång vill ändra sin info så står det vad man valde en gång i tiden, då
som jag skrev "webdesign" osv.... förstår ni grabbs???
klart ni gör, för bättre än så här blir inte förklaringen av en halvpackad crisse6 he he...
jodå.... så jag menar, men håller med dig, blir kanske jobbigt med massa if-satser + att jag inte ska ha bara en "dropdown" hur löser man det? det borde väl gå att man har ett värde när man väljer i "dropdownen" te x "webdesign" så förs webdesign in i db:en och sen när man en annan gång ska ändra så står det att man valt "webdesign" någon annan gång, kan man inte typ fixa det så här:
Jag antar att du har alternativen i en tabell. Om inte så rekomenderas det då man kan ändra och lägga till enkelt.
<select name=alternativ>
<%
intresse = "Hans_intresse__hans_val"
Set alt = conn.execute("SELECT * FROM alternativ")
do until alt.EOF
response.write "<option value="""&alt("alternativ")""" "
if alt("alternativ") = intresse then
response.write "SELECTED"
end if
response.write ">" & chr(10)
alt.Movenext
loop
%>
</select>
jag vet inte om jag fattat rätt.... men det funkar iaf inte! Vill bara säga att jag vill att man ska kunna välja något annat alternativ i "dropdownen" även om man engång i tiden redan gjort ett val...
så här ser min kod ut nu, har gjort en tabell i db:en som heter alternativ
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set rsAndra = Server.CreateObject("ADODB.Recordset")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
SQL = "select * from users where id =" & session("id")
rsAndra.Open SQL, Databas, 1, 2
If rsAndra.EOF then
%>
Hittade inte någon medlem som du försökte ändra!
<%
%>
<% End If %>
<font face="Verdana" size="1">
<form name="andra" method="post" action="andrat.asp">
<p><font face="Verdana" size="1" color="black">Användarnamn:<br>
<input type="text" name="Username" value="<%=rsAndra("username")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<p><font face="Verdana" size="1" color="black">Lösenord:<br>
<input type="password" name="Password" value="<%=rsAndra("password")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<p><font face="Verdana" size="1" color="black">Emejl:<br>
<input type="text" name="E-post" value="<%=rsAndra("E-post")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<p><font face="Verdana" size="1" color="black">Namn:<br>
<input type="text" name="Namn" value="<%=rsAndra("namn")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<p><font face="Verdana" size="1" color="black">Efternamn:<br>
<input type="text" name="Efternamn" value="<%=rsAndra("efternamn")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<p><font face="Verdana" size="1" color="black">Mobilnummer:<br>
<input type="text" name="Mobil" value="<%=rsAndra("mobil")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<p><font face="Verdana" size="1" color="black">Du bor i:<br>
<input type="text" name="bor" value="<%=rsAndra("bor")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<p><font face="Verdana" size="1" color="black">Detta är adressen till den bild som är på dig själv: (om fältet är tomt har du ingen bild på dig)<br>
<input type="text" name="bilder" value="<%=rsAndra("bilder")%>" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"></font></p>
<font face="Verdana" size="1" color="black">Fakta om dig själv:<br>
<textarea name="Fakta" rows="6"
cols="30" style="font-family:Verdana; font-size:10; background-color:rgb(222,222,222); border-width:1; border-color:black; border-style:solid;"><%=rsAndra("Fakta")%></textarea></font>
<p>
<select name=alternativ>
<%
intresse = "Hans_intresse__hans_val"
Set alt = conn.execute("SELECT * FROM alternativ")
do until alt.EOF
response.write "<option value="""&alt("alternativ")""" "
if alt("alternativ") = intresse then
response.write "SELECTED"
end if
response.write ">" & chr(10)
alt.Movenext
loop
%>
</select>
<select name=alternativ>
<%
[b]
intresse = "Hans_intresse__hans_val"
[/b]
' här borde du ta något från
' medlemstabellen
'
Set alt = conn.execute("SELECT * FROM alternativ")
do until alt.EOF
response.write "<option value="""&alt("alternativ")""" "
if alt("alternativ") = intresse then
response.write "SELECTED"
end if
response.write ">" & chr(10)
alt.Movenext
loop
%>
</select>
Ditt connectionobjekt heter databas här så använder du conn.
När du säger att det inte fungerara så är det inte speciellt upplysande. Lite mer detaljer tack.
Kompileringsfel i Microsoft VBScript error '800a0401'
Slut på programsats förväntas.
/groda/hamta.asp, line 109
response.write "<option value="""&alt("alternativ")""" "
sedan funkar detta? blir det en "dropdown" som man kan välja olika alternativ i eller? jag vill ju att man ska kunna välja något annat alternativ nån annan gång.... (om man vill då) www.peachy.nu har det!
En sida som listar alla intressen och kryssar för dem som medlemmen tidigare kryssat för:
Dim objRS
set objRS=objConn.Execute("SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I,Medlemmar as M ON WHERE I.IntresseID*=M.IntresseID AND M.MedlemsID=" & Session("MedlemsID"))
response.write "<FORM ACTION=""update.asp"">"
do until objRS.EOF
response.write "<INPUT TYPE=""checkbox"" NAME=""intresse"" value=""" & objRS(0) & """"
if not isnull(objRS(2)) then response.write " CHECKED"
response.write ">" & objRS(1) & "<BR>"
objRS.Movenext
loop
response.write "</FORM>"
Kod som uppdaterar databasen med de nya kryssen
objConn.Execute "DELETE FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID")
for each intresse in Request("intresse")
objConn.Execute "INSERT INTO MedlemsIntressen (MedlemsID,IntresseID) VALUES (" & Session("MedlemsID") & "," & intresse & ")"
next
Alla tabellnamn, databaskopplingar etc. får du stoppa in själv
Jo, om du vill att man skall kunna ange flera intressen så är det emissions uppkast man får gå efter.
Felet som du får kanske försvinner om du skriver så här i stället
do until alt.EOF
response.write "<option value='" &_
alt("alternativ") & "'"
if alt("alternativ") = intresse then
response.write " SELECTED"
end if
response.write ">" & chr(10)
nu har jag gjort som emission sa, (tror jag) har databasen users.mdb med dessa tre tabeller: Intressen
id
webdesign
sex
bilar MedlemsIntressen
medlemsid
intresseid medlemmar
id
username
password
namn
efternamn
bor
osv...
sedan denna kod:
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set valj = Server.CreateObject("ADODB.Recordset")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Dim objRS
set objRS=valj.Execute("SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM Intressen AS I LEFT JOIN Medlemmar as M ON I.IntresseID=M.IntresseID WHERE M.MedlemsID=" & Session("MedlemsID"))
response.write "<FORM ACTION=""valj.asp"">"
do until objRS.EOF
response.write "<INPUT TYPE=""checkbox"" NAME=""intresse"" value=""" & objRS(0) & """"
if not isnull(objRS(2)) then response.write " CHECKED"
response.write ">" & objRS(1) & "<BR>"
objRS.Movenext
loop
response.write "</FORM>"
%>
<%
objValj.Execute "DELETE FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID")
for each intresse in Request("intresse")
objConn.Execute "INSERT INTO MedlemsIntressen (MedlemsID,IntresseID) VALUES (" & Session("MedlemsID") & "," & intresse & ")"
next
%>
selectsatsen ser inte ok ut, det saknas en koppling till medlemsintressetabellen
sql = _
"SELECT I.IntresseID,
I.IntresseNamn,
M.MedlemsID
FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intressid
left join medlemmar as M on mi.medlemsid = m.id
where m.id = " & Session("MedlemsID")
nä, jag fattar inte.... please need help! kolla nu, vad är fel, får felmesset: Objekt krävs..
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set valj = Server.CreateObject("ADODB.Recordset")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Dim objRS
sql = _"SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intressid left join medlemmar as M on mi.medlemsid = m.id where m.id = " & Session("MedlemsID")
response.write "<FORM ACTION=""valj.asp"">"
do until objRS.EOF
response.write "<INPUT TYPE=""checkbox"" NAME=""intresse"" value=""" & objRS(0) & """"
if not isnull(objRS(2)) then response.write " CHECKED"
response.write ">" & objRS(1) & "<BR>"
objRS.Movenext
loop
response.write "</FORM>"
%>
<%
objValj.Execute "DELETE FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID")
for each intresse in Request("intresse")
objConn.Execute "INSERT INTO MedlemsIntressen (MedlemsID,IntresseID) VALUES (" & Session("MedlemsID") & "," & intresse & ")"
next
%>
Lite hopblandning av variabelnamn. Sen så behöver du ju dela upp det på två sidor.
Visa.asp
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Dim objRS,sql
sql = "SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intressid left join medlemmar as M on mi.medlemsid = m.id where m.id = " & Session("MedlemsID")
set objRs = databas.execute(sql)
response.write "<FORM ACTION=""valj.asp"">"
%>
do until objRS.EOF
response.write "<INPUT TYPE=""checkbox"" NAME=""intresse"" value=""" & objRS(0) & """"
if not isnull(objRS(2)) then response.write " CHECKED"
response.write ">" & objRS(1) & "<BR>"
objRS.Movenext
loop
response.write "</FORM>"
objRs.close
set objRs = nothing
databas.close
set databas = nothing
%>
valj.asp
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
databas.Execute "DELETE FROM MedlemsIntressen WHERE MedlemsID=" & Session("MedlemsID")
for each intresse in Request("intresse")
databas.Execute "INSERT INTO MedlemsIntressen (MedlemsID,IntresseID) VALUES (" & Session("MedlemsID") & "," & intresse & ")"
next
databas.close
set databas = nothing
%>
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'i.intresseid = mi.intressid left join medlemmar as M on mi.medlemsid = m.id'.
/groda/visa.asp, line 8
vad är fel nu då? måste jag ha includes eller ngt?
det första man gör när en sql-fråga är felaktig är givetvis att skriva ut den till webbläsaren med response.write så man ser om den färdiga frågan är korrekt.
så här ser det ut nu för tillfället på visa.asp: (felmeddelande)
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id'.
/groda/visa.asp, line 14
och koden (rad 14=markerad)
<!-- #include file="adovbs.inc" -->
<!-- #include file="checkb.inc" -->
<html>
<body>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Dim objRS,sql
[b]sql = "SELECT I.IntresseID,I.IntresseNamn,M.MedlemsID FROM intressen as I left join medlemsIntressen as Mi on i.intresseid = mi.intresseid left join medlemmar as M on mi.medlemsid = m.id where m.id = " & Session("ID")[/b]
set objRs = databas.execute(sql)
response.write "<FORM ACTION=""valj.asp"">"
%>
do until objRS.EOF
response.write "<INPUT TYPE=""checkbox"" NAME=""intresse"" value=""" & objRS(0) & """"
if not isnull(objRS(2)) then response.write " CHECKED"
response.write ">" & objRS(1) & "<BR>"
objRS.Movenext
loop
response.write "</FORM>"
objRs.close
set objRs = nothing
databas.close
set databas = nothing
%>
</body>
<!-- #include file="checkb2.inc" -->
</html>
sedan valj.asp får jag inget felmess på = gött!
jag vet ej om jag har rätt tabeller men jag har 3 st i users.mdb; Intressen
IntresseID
IntresseNamn
MedlemsID
MedlemsIntressen
medlemsID
intresseID
Users
id
username
password
namn
osv....
ngt fel av mig?
263 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91