Använder en funktion som hämtar rätt bild till rätt post i databasen. Den kallas på via <imgsrc> Är det möjligt att göra bilden den hittar till en länk som "onclick" öppnar url'en med samma id i kolumnen "undersida"? Ja du behöver bara i din response.write lägga till så den skriver ut de taggar och attribut du vill ha. Tack för svar, är ny och vilsen i dubbelfnuttarnas land... Personligen tycker jag att Response.Write är ganska jobbigt. Men det finns väl någon poäng med det... Jag skulle ha gjort ungefär såhär: Du kan ju lägga hela IMG tagen i funktionen: Underbart Andreas, det var precis det jag var ute efter! Sum subrutin: Skriptet fastnar vid Do-slingan och jag får felsvaret: JAg förutsätter att du har öppnat anslutningen och recordsetet innan Do Loopen. Har du gjort det? Hej Andreas! Kan ju testa med: Mmmm, nu läser den skriptet, skapar mappen. Men om jag lägger filer i mappen kan inte hitta dem i den utan visar bara nopicture.gif. Opps, missade ett ställe. ;O) Hittade den faktiskt redan tidigare (alldeles själv, mycket stolt! :-) ), men tyvärr hjälpte det inte. Kära prujo... rekommendera inte det mest prestanda ätande som finns i asp (eller vanligaste misstaget?) nämligen att bland asp-kod & html hej villt... :) Det är seeeegt för servern att växla mellan html & asp-taggar hela tiden, därför är det bättre att använda response.write... Och vad menar du med krångligt? :) Det enda man behöver tänka på är att enter måste ersättas med vbcrlf istället och att " måste ersättas med dubbla ""... =D Observera följande: Anledningen att jag förändra ifsatsen är för att det inte finns något behov av att kontrollera om det finns filer om inte mappen existerar. Har varit bortrest ett tag, därav ingen reaktion från mig. Hej,Går det att lägga in en länk i denna funktion?
Funktionen:
<%
Function kollabild(text)
dim filesys, newfolder
set filer = CreateObject("Scripting.FileSystemObject")
mappen = Server.MapPath(mapp)
If Not filer.FolderExists(mappen) Then
filer.CreateFolder mappen
End If
filen = mapp & "/" & text & ".jpg"
If Not filer.FileExists(Server.MapPath(filen)) Then
Response.Write "bilder/nopicture.gif"
Else
Response.Write "bildmapp/" & text & ".jpg"
End if
Set filer = Nothing
End Function
%>Sv: Går det att lägga in en länk i denna funktion?
ex:
<code>
<img src=" + bilden + " onclick='Foo()' >
</code>
Typ.
//Johan NSv: Går det att lägga in en länk i denna funktion?
Koden som kallar på funktionen ser ut så här:
<img src="<%=kollabild(RecSet("id"))
har förtvivlat försökt få in onclicket:
<img src="<%=kollabild(RecSet("id")) onclick=(RecSet("undersida"))%>
vad gör jag för fel?Sv: Går det att lägga in en länk i denna funktion?
<%
kod
...
IF bla bla bla
%>
<img src="<%=kollabild(RecSet("id"))%> onclick=<%=(RecSet("undersida"))%>>
<%
ELSE
mer kod
...
END IF
%>
Observera UNGEFÄR! Jag brukar alltid spåna först och debuga sen så det kan vara en del fel...Sv: Går det att lägga in en länk i denna funktion?
<code>
<%
Function kollabild(id, undersida)
Dim fso, mapp, filen
Set fso = CreateObject("Scripting.FileSystemObject")
mappen = Server.MapPath(mapp)
If fso.FolderExists(mappen) Then
filen = mapp & "/" & text & ".jpg"
If fso.FileExists(filen) Then
Response.Write "<img src="""bildmapp/" & text & ".jpg"" onclick=" & undersida & ">"
Else
Response.Write "<img src="""bilder/nopicture.gif"">"
End If
Else
fso.CreateFolder mappen
End If
Set fso = Nothing
End Function
%>
</code>Sv: Går det att lägga in en länk i denna funktion?
Men, hur ska jag nu kalla på funktionen?Sv: Går det att lägga in en länk i denna funktion?
<code>
<%
Sub kollabild(id, undersida)
Dim fso, mapp, filen
Set fso = CreateObject("Scripting.FileSystemObject")
mappen = Server.MapPath(mapp)
If fso.FolderExists(mappen) Then
filen = mapp & "/" & text & ".jpg"
If fso.FileExists(filen) Then
Response.Write "<img src="""bildmapp/" & text & ".jpg"" onclick=" & undersida & ">"
Else
Response.Write "<img src="""bilder/nopicture.gif"">"
End If
Else
fso.CreateFolder mappen
End If
Set fso = Nothing
End Function
%>
<%
Do Until RecSet.EOF
kollabild RecSet("id"), RecSet("undersida")
RecSet.MoveNext
Loop
%>
</code>
Som funktion:
<code>
<%
Function kollabild(id, undersida)
Dim fso, mapp, filen
Set fso = CreateObject("Scripting.FileSystemObject")
mappen = Server.MapPath(mapp)
If fso.FolderExists(mappen) Then
filen = mapp & "/" & text & ".jpg"
If fso.FileExists(filen) Then
kollabild = "<img src="""bildmapp/" & text & ".jpg"" onclick=" & undersida & ">"
Else
kollabild = "<img src="""bilder/nopicture.gif"">"
End If
Else
fso.CreateFolder mappen
End If
Set fso = Nothing
End Function
%>
<%
Do Until RecSet.EOF
Response.Write kollabild(RecSet("id"), RecSet("undersida"))
RecSet.MoveNext
Loop
%>
</code>
Om du infogar funktions anropet i html:
<code>
<%=kollabild(RecSet("id"), RecSet("undersida"))%>
</code>Sv: Går det att lägga in en länk i denna funktion?
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: ''
Är det en fnutt som fattas eller saknas något objekt?
För att krångla till saker ytterligare skulle jag vilja få upp onclicket i target=""_blank"" width="500" height="500"
Blir mycket tacksam för hjälp!Sv: Går det att lägga in en länk i denna funktion?
Sv: Går det att lägga in en länk i denna funktion?
När jag lägger in:
<%
SQL = "SELECT id, undersida FROM medlemmar ORDER BY namn"
Set RecSet = Connect.Execute(SQL)
Do Until RecSet.EOF
Response.Write kollabild(RecSet("id"), RecSet("undersida"))
RecSet.MoveNext
Loop
%>
får jag felsvar:
Error Type:
Server.MapPath(), ASP 0171 (0x80004005)
The Path parameter must be specified for the MapPath method.
och den pekar på raden i funktionen som säger:
mappen = Server.MapPath(mapp)
Likadant om jag även tar med databaskopplingen
Jag vet att jag är ute på djupt vatten - hoppas du har tålamod med mig :-)Sv: Går det att lägga in en länk i denna funktion?
<code>
<%
Function kollabild(id, undersida)
Dim fso, mappen, filen
Set fso = CreateObject("Scripting.FileSystemObject")
mappen = Server.MapPath("bildmapp")
If fso.FolderExists(mappen) Then
filen = mapp & "/" & text & ".jpg"
If fso.FileExists(filen) Then
kollabild = "<img src="""bildmapp/" & text & ".jpg"" onclick=" & undersida & ">"
Else
kollabild = "<img src="""bilder/nopicture.gif"">"
End If
Else
fso.CreateFolder mappen
End If
Set fso = Nothing
End Function
%>
</code>Sv: Går det att lägga in en länk i denna funktion?
Sv: Går det att lägga in en länk i denna funktion?
<code>
<%
Function kollabild(id, undersida)
Dim fso, mappen, filen
Set fso = CreateObject("Scripting.FileSystemObject")
mappen = Server.MapPath("bildmapp")
If fso.FolderExists(mappen) Then
filen = mappen & "/" & text & ".jpg"
If fso.FileExists(filen) Then
kollabild = "<img src="""bildmapp/" & text & ".jpg"" onclick=" & undersida & ">"
Else
kollabild = "<img src="""bilder/nopicture.gif"">"
End If
Else
fso.CreateFolder mappen
End If
Set fso = Nothing
End Function
%>
</code>Sv: Går det att lägga in en länk i denna funktion?
Tänkte på att i originalfunktionen kör den end if innan if-satsen om filen börjar, kan det ha någon betydelse?Sv: Går det att lägga in en länk i denna funktion?
Sv: Går det att lägga in en länk i denna funktion?
<code>
Function kollabild(id, undersida)
</code>
Samt:
<code>
filen = mappen & "/" & text & ".jpg"
</code>
Sedan hela koden:
<code>
<%
Function kollabild(id, undersida)
Dim fso, mappen, filen
Set fso = CreateObject("Scripting.FileSystemObject")
mappen = Server.MapPath("bildmapp")
If fso.FolderExists(mappen) Then
filen = mappen & "/" & text & ".jpg"
If fso.FileExists(filen) Then
kollabild = "<img src="""bildmapp/" & text & ".jpg"" onclick=" & undersida & ">"
Else
kollabild = "<img src="""bilder/nopicture.gif"">"
End If
Else
fso.CreateFolder mappen
End If
Set fso = Nothing
End Function
%>
</code>
Metoden har ett interface som tar emot id samt undersida. Du använder mkt väl undersida parametern men inte id. Du har sedan en text variabel som konstant är null vilket gör att så länge en fil inte bara heter .jpg så kommer nopicture.gif att visas.
Så ändra id till text så skall du få se på underverk :-)
//Johan NSv: Går det att lägga in en länk i denna funktion?
Ur prestanda synpunkt kan det var bättre att behålla FSO instansen:
<code>
<%
Function kollabild(id, undersida)
Dim mappen, filen
mappen = Server.MapPath("bildmapp")
If fso.FolderExists(mappen) Then
filen = mappen & "/" & id & ".jpg"
If fso.FileExists(filen) Then
kollabild = "<img src="""bildmapp/" & text & ".jpg"" onclick=" & undersida & ">"
Else
kollabild = "<img src="""bilder/nopicture.gif"">"
End If
Else
fso.CreateFolder mappen
End If
End Function
Dim rs
Dim con
Dim fso
Set con = Server.CreateObject("ADODB.Connection")
con.Open ">>>Din anslutningsträng<<<"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM TabellNamn", con
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Do Until rs.EOF
Response.Write kollabild(rs("Id"), rs("undersida"))
rs.MoveNext
Loop
Set fso = Nothing
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
%>
</code>Sv: Går det att lägga in en länk i denna funktion?
Om jag byter ut "text" till "id" fungerar Andreas sista funktion sånär som på onclick:et.
Det skapas ingen länk. Sv: Går det att lägga in en länk i denna funktion?
Har du fortfarande problem, så klistra in, så du kan delge oss problemet i större grad, den del av html-koden som ges till klient-sidan.
/Kaj