将用户输入从 HTML 页面传递到 Perl 脚本并在网页中显示结果

Passing user Input from a HTML page to a Perl script and displaying the results in webpage

我有如下现有设置。

现有设置:

下面是用户交互的 perl 脚本,它将 EmpNo 作为参数并从 Employee table 打印员工的姓名和薪水。 目前我运行终端中的这个脚本和输出也显示在终端上。

Perl 代码

#!/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()

输出:perl test.pl

输入员工编号 207711 名字=约翰工资=10000

要求:

而不是 运行 终端上的脚本与用户 Input 。我喜欢有一个 HTML 网页,用户可以从下拉列表中 select 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。等待您宝贵的回应。非常感谢!!!

只是即兴发挥,没有尝试,只是 add/change 您代码中的这些行:

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 不被推荐,但上面的基本想法应该仍然有效。