我正在编写一个处理表单数据的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>";
}
}
答案 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