将用户输入从 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 不被推荐,但上面的基本想法应该仍然有效。
我有如下现有设置。
现有设置:
下面是用户交互的 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 不被推荐,但上面的基本想法应该仍然有效。