21. oktober 2008 - 19:49Der er
12 kommentarer og 1 løsning
Styring af indsætning af kode i tabel
Jeg har noget kode til et billedegalleri. Men jeg kan ikke lige finde ud af hvordan jeg styre retningen på billedeoversigten. Nu vises billederne lodret, altså første række ét billede + tekst, næste række ét billede + tekst osv. Jeg kunne godt tænke mig at man viste fx 3 billeder + tekst i hver række, 4. billede starter så en ny række. Jeg ved ikke lige hvordan dette skal sætte op, håber i kan se jer ud af det.
Her er min kode:
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb") strSQL = "Select * From Images" Set RS = Conn.Execute(strSQL)
countSQL = "Select Count(ID) As Count From Images" RS2 = Conn.Execute(countSQL) %> <table border="0" cellpadding="0" cellspacing="0" width="40%"> <tr> <td width="100%" align="center"><font size="1" face="Verdana"><strong><%= RS2("Count")%> </strong>images in database</font></td> </tr> </table> <br> <% Do While Not rs.EOF %>
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Slettet bruger
21. oktober 2008 - 20:37#1
Du kan lave en If ... Then kommando, for hver gang data gennemløbes. Og så tilføje variabel t, som der bliver lagt én til, for hvert gennemløb. Når t når 3 skal den starte forfra.
Så noget i retning af:
<% ...
t=t+1 If t=3 Then [opret ny række] t=0 Else [opret ny celle] End If
Det lyder jo som en god og fornuftig idé... men det kan jeg ikke se mig ud af hvordan jeg skal lave. Hvis jeg nu sætter pointne op til 60, vil du så hjælpe mig?
Synes godt om
Slettet bruger
21. oktober 2008 - 23:03#3
Du for mig jo til at lyde helt gnieragtig! :( Jeg skal nok hjælpe for de 30 point du tilbyder ;)
... <table><tr>
<% Do While Not RS.EOF
Response.Write "<td>...</td>"
t=t+1 If t=3 Then Response.Write "</tr><tr>" t=0 End If
RS.MoveNext Loop
%> ...
Synes godt om
Slettet bruger
21. oktober 2008 - 23:04#4
Bare husk at definere t og sætte den til 0 fra start, altså allerøverst:
<% Dim t t=0 ...
Synes godt om
Slettet bruger
21. oktober 2008 - 23:06#5
Og husk at afslutte den sidste række samt tabellen uden for asp-koden til slut, altså:
... %>
</tr></table>
Synes godt om
Slettet bruger
21. oktober 2008 - 23:11#6
Du kan indsætte indhold mellem <td>...</td>-tag'ene - altså du kan hente dit billede og tekst ind på den måde du ønsker. Når ASP-en gennemløber løkken, oprettes en ny række, hver gang der er sat 3 celler i den nuværende række (fordi t så er lig med 3 - der lægges jo netop 1 til t hver gang, en celle oprettes)
Øv, jeg kan ikke få det til at virke. Jeg har prøvet med Response.Write "<td>...</td>" og sætte koden ind der, men får en masse fejl som sikkert hænger sammen med apostroferne. Det kan jeg ikke lige se mig ud af.
Synes godt om
Slettet bruger
22. oktober 2008 - 09:27#8
Alle "-tegnene skal du bare udskifte med '-tegn, så kan det lade sig gøre. Fx: Response.Write "'", skriver resultatet: '. Jeg prøver herunder, at skrive din kode lidt om. Jeg har ændret en del i strukturen, for du oprettede faktisk en ny tabel, for hvert gennemløb af et datasæt.
<% Dim t t=0 Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb") strSQL = "Select * From Images" Set RS = Conn.Execute(strSQL)
countSQL = "Select Count(ID) As Count From Images" RS2 = Conn.Execute(countSQL) %> <table border="0" cellpadding="0" cellspacing="0" width="40%"> <tr> <td width="100%" align="center"><font size="1" face="Verdana"><strong><%= RS2("Count")%> </strong>images in database</font></td> </tr> </table> <br>
t=t+1 If t=3 Then Response.Write "</tr><tr>" t=0 End If
RS.MoveNext Loop
Conn.Close Set Conn = Nothing %> </tr> </table>
Der kommer helt sikkert nogle fejlmeddelelser, for det var lidt besværligt at overskue. Giv besked om, hvad der sker, når du forsøger at få det til at virke.
I virkeligheden får du her oprettet to celler ved siden af hinanden for hvert billede + tekst, der skal indsættes.
// Steeven
Synes godt om
Slettet bruger
22. oktober 2008 - 09:30#9
I den nederste grupper af Response.Write kommandoer mangler der nogle "-tegn. Det skal se således ud:
Så nu begynder det at se rigtigt fint ud - super. Det drillede lige lidt med nogle tastefejl.
Eneste problem jeg lige kan finde er at javascriptet ikke får værdierne ind. Kun java script:displayWindow( bliver returneret. Så der mangler dette: 'showimg.asp?id=1',280,400)
Jeg har prøvet at lege lidt med " og ', men det har ikke hjulpet. Stort set kun givet fejl. Håber du kan finde fejlen.
I linjen: <A HREF="java script:displayWindow('showimg.asp?id=<%=RS("ID")%>',<% ...
har jeg jo ændret alle "-tegn til '-tegn. Men så kan den ikke adskille det fra de '-tegn, der allerede står i linjen. Vi må vel bare trække den uden for ASP-koden.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.