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

时间:2016-02-22 15:48:24

标签: html mysql apache perl cgi

我现有的设置如下。

现有设置:

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

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 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。等待您的宝贵回应。非常感谢!!!

1 个答案:

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