Avatar billede webnoob Nybegynder
06. marts 2006 - 11:27 Der er 26 kommentarer og
1 løsning

problem med loop

Jeg har prøvet at lave en simpel loop. Den går i al sin simpelhed ud på at skulle vise 2 td'er ved siden af hinanden( en til et billede og en til besskrivelse af billedet), er der flere billeder der skal beskrives skal der komme to mere td'er frem, er der flere, skal det fortsætte nedenunder så det er sådan her:

td'1 m. billede | td'1 beskrivelse | td'2 m. billede | td'2 beskrivelse
_________
td'3 m. billede | td'3 beskrivelse | ect. ect.

håber det er til at forstå.

med det simple script jeg har lavet får jeg en underlig fejl.

SCRIPT:

<tabel border="1">

<%
counter = 0
Do while not record.eof
%>
        <td width="143" height="165"><img src="billeder/jpg/<%= record("billede") %>"></td>
        <td width="140" valign="top">indholde af vare nr. 1</td>
        <%
        counter = counter + 1
        if counter = 2 then
        %>
    <tr></tr>
    <%
    counter = 0
    end if
loop
%>

</tabel>

FEJLEN:

Response object error 'ASP 0251 : 80004005'

Response Buffer Limit Exceeded

/index.asp, line 0

Execution of the ASP page caused the Response Buffer to exceed its configured limit.
Avatar billede softspot Forsker
06. marts 2006 - 11:31 #1
Du mangler vel at lave en movenext i din løkke (og løber derfor i en uendelig løkke)...
Avatar billede thesurfer Nybegynder
06. marts 2006 - 11:34 #2
Yeps..:

    end if
    record.movenext
loop
%>

/theSurfer
Avatar billede webnoob Nybegynder
06. marts 2006 - 11:51 #3
ja det selvfølgelig det der manglede, men løsningen på det proglem åbner døren til et nyt.

hele min side er bygget op af tabeller og jeg bruger en case til at få vist alle link i samme td.

nu når jeg fik løst det problem med løkken så spreder den sig ud over hele siden i stedet for bare den td.

håber I kan forstå.
Avatar billede softspot Forsker
06. marts 2006 - 11:59 #4
Det er fordi du ikke får startet dine rækker korrekt.


<tabel border="1">

<%
counter = 0
Do while not record.eof
  if counter mod 3 = 0 then
%>
  <tr>
<%
  end if
%>
  <td width="143" height="165"><img src="billeder/jpg/<%= record("billede") %>"> </td>
  <td width="140" valign="top">indholde af vare nr. 1</td>
<%
  counter = counter + 1
  if counter mod 3 = 2 then
%>
  <tr>
<%
    counter = 0
  end if
  record.movenext
loop
record.close

' afslut tabellen
if counter mod 3 <> 2 then
  do while counter mod 3 > 0
    response.write "<td>&nbsp;</td>"
    counter = counter + 1
  loop
  response.write "</tr>"
end if
%>

</tabel>
Avatar billede softspot Forsker
06. marts 2006 - 12:00 #5
Ups! Det skulle naturligvis have været en </tr> i stedet for <tr> i if-sætningen lige inden record.movenext...
Avatar billede webnoob Nybegynder
06. marts 2006 - 12:03 #6
det giver det samme problem, måske du lige skulle se det med dine egne øjne.

http://milletest.millet-design.dk/index.asp?side=varer&id=1
Avatar billede softspot Forsker
06. marts 2006 - 12:13 #7
Jeg tror det er fordi du ønsker et 2-kolonne layout og jeg har lavet det til 3 kolonner :)

prøv denne i stedet (så kan du ændre på antallet af kolonner i variablen cols):

<tabel border="1">

<%
cols = 2
counter = 0
Do while not record.eof
  if counter mod cols = 0 then
%>
  <tr>
<%
  end if
%>
  <td width="143" height="165"><img src="billeder/jpg/<%= record("billede") %>"> </td>
  <td width="140" valign="top">indholde af vare nr. 1</td>
<%
  counter = counter + 1
  if counter mod cols = cols-1 then
%>
  <tr>
<%
  end if
  record.movenext
loop
record.close

' afslut tabellen
if counter mod cols <> cols-1 then
  do while counter mod cols <> cols-1
    response.write "<td width="143" height="165">&nbsp;</td><td width="140" valign="top">&nbsp;</td>"
    counter = counter + 1
  loop
  response.write "</tr>"
end if
%>

</tabel>
Avatar billede softspot Forsker
06. marts 2006 - 12:14 #8
Og ja, jeg kopierede samme fejl fra første kodeeksempel, så den sidste <tr> i hovedloopet skal stadig være en </tr>... :/
Avatar billede webnoob Nybegynder
06. marts 2006 - 12:16 #9
den er en fejl kig på samme link jeg skrev 06/03-2006 12:03:31.
Avatar billede webnoob Nybegynder
06. marts 2006 - 12:17 #10
Microsoft VBScript compilation error '800a0401'

Expected end of statement

/varer.asp, line 34

response.write "<td width="143" height="165">&nbsp;</td><td width="140" valign="top">&nbsp;</td>"
---------------------------^

andre skal også kunne se fejlen så den komme selvfølgelig her.
Avatar billede softspot Forsker
06. marts 2006 - 12:26 #11
Ja, det var lige noget med dobbeltanførselstegn i strenge i VBS. Gør sådan i stedet:

    response.write "<td width=""143"" height=""165"">&nbsp;</td><td width=""140"" valign=""top"">&nbsp;</td>"
Avatar billede webnoob Nybegynder
06. marts 2006 - 12:29 #12
det fejler stadig.
Avatar billede softspot Forsker
06. marts 2006 - 12:46 #13
Ok, så kommer der lige et sidste forsøg (så vil jeg ikke spilde din tid med mine sære forslag):

<tabel border="1">

<%
cols = 2
counter = 0
Do while not record.eof
  if counter mod cols = 0 then
%>
  <tr>
<%
  end if
%>
  <td width="143" height="165"><img src="billeder/jpg/<%= record("billede") %>"> </td>
  <td width="140" valign="top">indholde af vare nr. 1</td>
<%
  counter = counter + 1
  if counter mod cols = 0 then
%>
  </tr>
<%
  end if
  record.movenext
loop
record.close

' afslut tabellen
if counter mod cols <> 0 then
  do while counter mod cols <> 0
    response.write "<td width=""143"" height=""165"">&nbsp;</td><td width=""140"" valign=""top"">&nbsp;</td>"
    counter = counter + 1
  loop
  response.write "</tr>"
end if
%>

</tabel>
Avatar billede webnoob Nybegynder
06. marts 2006 - 12:51 #14
ok inden du render, så har jeg lige noget du måske kan hjælpe dig til at lave noget. Jeg har en anden fil på samme link http://milletest.millet-design.dk/index.asp?side=varer&id=1 prøv lige og kig, scriptet kommer her og det virker, men bare ikke det jeg ønsker.

SCRIPT:

<table border="1" style="height: 350px; width: 670px;">
<%
x=1
Do while not record.eof
%>
    <tr>
        <td align="center" style="height: 59px; width: 210px"><b>Model: <%= record("model") %></b></td>
        <td rowspan="3" style="width: 259px"><%= record("beskrivelse") %></td>
        <td rowspan="2" style="width: 173px;"><%= record("varenummer") %></td>
    </tr>
    <tr>
        <td style="width: 210px;" rowspan="2"><img src="billeder/jpg/<%= record("billede") %>"></td>
    </tr>
    <tr>
        <td style="height: 208px; width: 173px;">5</td>
    </tr>
<%
x=x+1
record.MoveNext
loop
%>

</table>
Avatar billede webnoob Nybegynder
06. marts 2006 - 12:52 #15
by the way, dit sidste forsøg fejlede også.
Avatar billede softspot Forsker
06. marts 2006 - 12:57 #16
Når du siger fejler, hvad ligger der så i det (kørselsfejl eller bare at det ikke ligner det du vil have)?
Avatar billede webnoob Nybegynder
06. marts 2006 - 12:58 #17
ok det er nok en skrive fejl, der kommer ikke nogen fejl  i browseren, men det "smelter" tabellerne sammen. HAr du kigget på det andet jeg skrev som virker?
Avatar billede softspot Forsker
06. marts 2006 - 13:02 #18
Hvis det ikke er det du vil have, giver det vel ikke så meget mening at kigge på det...? Det er jo bare en simpel udskrivning af rækker (med lidt rowspan), men det er jo slet ikke den udfordring du står overfor med dette layout. Her vil du have flere records på samme linie og det betyder at du er nød til at håndtere at rækken skal skifte efter et givent antal kolonner er udskrevet.

Kan du ikke lige prøve at implementere koden på din testside, så jeg har mulighed for at se den source som bliver genereret på siden...?
Avatar billede softspot Forsker
06. marts 2006 - 13:03 #19
Altså den kode jeg har postet som ikke fungerer.
Avatar billede webnoob Nybegynder
06. marts 2006 - 13:04 #20
så skal jeg jo poste hele min index fil, jeg kan i stedet for give dig adgang til min server med en ftp så kan du kigge der?
Avatar billede softspot Forsker
06. marts 2006 - 13:08 #21
Du gjorde det lige før på adressen http://milletest.millet-design.dk/index.asp?side=varer&id=1, hvorfor er det blevet sværere nu?
Avatar billede softspot Forsker
06. marts 2006 - 13:08 #22
Jeg mener, kan du ikke bare lægge det derud igen?
Avatar billede webnoob Nybegynder
06. marts 2006 - 13:09 #23
sådan
Avatar billede softspot Forsker
06. marts 2006 - 13:13 #24
prøv at skrive table i stedet for tabel i tag'et til den genererede tabel
Avatar billede webnoob Nybegynder
06. marts 2006 - 13:16 #25
en simpel skrivefejl, igen om jeg endda sige. Begynder at blive lidt pinligt. lig et svar så du kan få pointene.
Avatar billede softspot Forsker
06. marts 2006 - 13:18 #26
:)
Avatar billede softspot Forsker
06. marts 2006 - 13:30 #27
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester