如何更改CGI程序中的rowspan属性?

时间:2010-02-14 22:01:17

标签: perl cgi

我正在编写一个处理表单数据的CGI脚本,它应该在表格中输入输入的名称及其值。当我有一个或多个具有相同名称的值时,名称应跨越行以容纳与该名称对应的所有值。例如,如果我的名称为“color”,其值为“red”,“green”,“blue”,那么颜色应该跨越我表中的3行。我的问题是,如何更改脚本中的rowspan属性以适应这种情况:

#!/usr/bin/perl --
use strict;
use CGI;

print <<HTTP;
Status: 200 OK
Content-Type: text/html

HTTP

print <<HTML; 
<html>
    <head>
        <title>Parameters<title>
    <head>

    <body>
     <table border="1" cellpadding="5" cellspacing="1">
     <tr>

     <th>Name</th>
     <th>Value</th>

     </tr>

HTML

 my $query = new CGI;

 my($name, $value);

 foreach $name ( $query->param)
 {
    print "<tr>";
    print "<td>$name</td>";

    foreach $value($query->param($name))
    {
        print "<td>$value</td>";
        print "</tr>";
    }



}

1 个答案:

答案 0 :(得分:0)

试试这个:

my $query = new CGI;
my($name, $value);

foreach $name ($query->param) {
    my @values = $query->param($name);
    my $count  = @values;

    print "<tr>";
    print "<td rowspan='$count'>$name</td>";
    print "<td>".shift(@values)."</td>";
    print "</tr>";    

    foreach $value (@values) {   
        print "<tr>";
        print "<td>$value</td>";
        print "</tr>";
    }
}
顺便说一下,我建议你考虑使用一些模板处理系统,例如: Template Toolkit