【发布时间】:2016-06-04 03:11:01
【问题描述】:
我有如下现有设置。
现有设置:
下面是用户交互式 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 姓名=约翰薪水=10000
要求:
而不是使用用户 Input 在终端上运行脚本。我喜欢有一个 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。等待您的宝贵回复。非常感谢!!!
【问题讨论】:
-
如果你所说的“CGI”是指 CGI.pm,那么现在这并不是一个很好的选择(它实际上是 discouraged in the official documentation)。请参阅CGI::Alternatives。
-
你的问题太宽泛了。您必须设置一个 HTML 页面,并且您的 HTTP 服务器必须配置为期望 URL 为
/test.pl。然后您必须更改您的 Perl 脚本以通过 CGI 接口接受输入数据并提供 HTML 输出而不是简单的文本。所有这些都无法在一个答案中处理 -
@Borodin : HTML 页面已经准备好, /test.pl 的 URL 也已经准备好了。您能否建议通过 CGI 接口接受输入数据所需的更改。谢谢。
标签: html mysql apache perl cgi