|
Erik Stephens
mod_python at 24ksoftware.com
Mon Mar 8 10:39:07 EST 2004
On Mon, 8 Mar 2004, Robert Thomas Davis wrote:
> Hello all. The following code is in a template file which gets
> passed the "record_set" variable, which is the result from an SQL
> query. Its job is to create an table with the query information.
> This all works fine, however, I have been unable to figure out where
> to put the closing tag for the <tr> tag. According to what I have
> read it should be placed after the end to the first inner loop.
> However, that places </tr> tags after every <td></td> pair. This is
> all with the goal in mind of keeping things XHTML complient. I
> would appreciate any comments and suggestions.
> <span>
> <table border="1">
> <caption><%= caption %></caption>
> <%
> for record in record_set:
> # begin outer loop
> %>
> <tr>
> <%
> for field in record:
> # begin inner loop
> %>
> <td><%= field %></td>
> <%
> # end inner loop
> %>
> <%
> # end outer loop
> %>
> </table>
> </span>
I got the following code to work like I think you want. The position of
those '# end' comments or the whitespace around them affects the code, so
be careful with those.
<table border=1>
<%
for i in range(10):
# begin outer loop
%>
<tr>
<%
for j in range(5):
# begin inner loop
%>
<td><%= j %></td>
<%
# end inner loop
%>
</tr>
<%
# end outer loop
%>
</table>
Personally, I find this difficult to read and very error-prone. I'd
write it like this if possible. Granted, this will probably get ugly
as the layout gets more complicated.
<table border=1>
<%
for i in range(10):
req.write('<tr>')
for j in range(5):
req.write('<td>[%d, %d]</td>' % (i,j))
req.write('</tr>')
%>
</table>
Best regards,
Erik
|