我现有的设置如下。
下面是用户交互式perl脚本,它以EmpNo为参数,并从Employee表中打印员工的姓名和薪水。 目前我在终端运行此脚本,输出也显示在终端上。
#!/usr/bin/perl
use DBI;
use strict;
my $driver = "mysql";
my $database = "dbname";
my $dsn = "DBI:$driver:database=$database";
my $userid = "uid";
print "Enter employee Number \n";
my $input1 =<>;
my $dbh = DBI->connect($dsn, $userid) or die $DBI::errstr;
my $sth = $dbh->prepare("SELECT Empname ,Salary FROM Employee WHERE EmpNo ='$input1' ");
$sth->execute() or die $DBI::errstr;
print "Number of rows found :" + $sth->rows;
while (my @row = $sth->fetchrow_array()) {
my ($name, $salary) = @row;
print "Name = $name, Salary = $salary \n";
}
$sth->finish()
输入员工编号 207711 Name = John Salary = 10000
而不是在用户输入的终端上运行脚本。我喜欢有一个HTML网页,用户可以从下拉列表中选择EmpNo,并且单击提交时应该将此EmpNo传递给Perl脚本 按钮。然后,该脚本应该获取数据库详细信息并显示在网页上。
表格就像这样。
<FORM action="/test.pl" method="POST">
< select name = "Employee details" >
<option selected = "selected">EmpNo</option>
<option value = "207711">207711</option>
<option value = "207712">207712</option>
<option value = "207713">207713</option>
</select>
<input type="submit" value="Submit">
</FORM>
我愿意使用CGI并安装Apache。等待您的宝贵回应。非常感谢!!!
答案 0 :(得分:1)
在没有尝试的情况下完成此操作,只需在代码中添加/更改这些行:
use CGI qw(:standard);
print header;
print qq(<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n);
print qq(<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">\n);
print "<head>\n";
print " <title>Page Title Goes Here!</title>\n";
print "</head>\n";
my $input1 = param('Employee details') || "";
我没有听说过CGI.pm不被推荐,但上面的基本想法仍然有效。