in reply to Mid-row colspans with CGI.pm

It looks like a simple change of

$q->td([ 'two' ], {-colspan=>'2'}, [ '2' ]),
to
$q->td([ 'two' ]), $q->td({-colspan=>'2'}, [ '2' ]),
is all that is required.

Update: Thanks, jcwren. It felt like I must have been missing something... and I was!

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
(jcwren) RE: Re: Mid-row colspans with CGI.pm
by jcwren (Prior) on Oct 02, 2000 at 21:37 UTC
    Except that it produces as extra table row.

    And in reply to Ovid's post, that's about the conclusion I came to. Also, if you have more than one array, it ignores it. So any arguments passed as an array reference must be in the first array. Seems like it almost should want to do recursion for the current type (column data, table row, whatever), for each hash/array ref it sees. Then you could do something like this:
    $q->td (['two'], [{-colspan=>'2'}, ['2', 'II']])
    and generate the type of output kudra is looking for.
    #!/usr/local/bin/perl -w use strict; use CGI::Pretty qw/:standard/; { my $q = new CGI; print $q->table({-border=>'1', -cellpadding=>'2', -cellspacing=>'2 +'}, Tr({-align=>'LEFT', -valign=>'CENTER'}, [ $q->td(['one', '1', 'I']), $q->td(['two']), $q->td({-colspan=>'2'}, ['2']), $q->td({-colspan=>'2'}, ['three', 'III']), $q->td({-colspan=>'3'}, ['four']), ])); }
    <TABLE CELLPADDING="2" CELLSPACING="2" BORDER="1"> <TR VALIGN="CENTER" ALIGN="LEFT"> <TD> one </TD> <TD> 1 </TD> <TD> I </TD> </TR> <TR VALIGN="CENTER" ALIGN="LEFT"> <TD> two </TD> </TR> <TR VALIGN="CENTER" ALIGN="LEFT"> <TD COLSPAN="2"> 2 </TD> </TR> <TR VALIGN="CENTER" ALIGN="LEFT"> <TD COLSPAN="2"> three </TD> <TD COLSPAN="2"> III </TD> </TR> <TR VALIGN="CENTER" ALIGN="LEFT"> <TD COLSPAN="3"> four </TD> </TR> </TABLE>


    --Chris

    e-mail jcwren