Perl:从数据库到表单的信息(HTML)

时间:2016-07-29 21:08:25

标签: html mysql forms perl cgi

我在工作场所处理一个非常具体的问题,而且无法找到我正在搜索的内容的答案

我希望从MySQL数据库中检索信息并将其添加到表单中,以便可以将其添加(提交)到不同的数据库,但在提交之前,用户需要能够进行更改并添加更多内容从第一个数据库中获取检索到的信息的数据。(想象一下"复制和粘贴,如果你将"从第一个数据库进入HTML表单而不提交,如果有意义的话)

我已准备好HTML按钮和SQL statmenet,但不知道从哪里开始?

HTML:

print "   <div style=\"z-index:86;\" class=\"group-shell\">";
print "   <table>\n";
print "   <tr><td><input class=\"dial-red-button\" id=\"importFromCAD\"  type=\"submit\" value=\"Import Info\"></td></tr>\n";

Perl SQL语句:

    $sql_statement20 = "select * FROM CT_AL_CAD_ID where CAD='$CAD' ORDER BY KeyField DESC";
    $sth20 = $dbh->prepare($sql_statement20);
    $sth20->execute();
    $sth20->bind_columns(undef, \$ID_data[0], \$ID_data[1], \$ID_data[2], \$ID_data[3], \$ID_data[4], \$ID_data[5], \$ID_data[6], \$ID_data[7], \$ID_data[8], \$ID_data[9], \$ID_data[10], \$ID_data[11], \$ID_data[12]);

    $sth20->fetch();

我已经坚持这个问题好几天了。任何帮助或想法都表示赞赏。

1 个答案:

答案 0 :(得分:0)

在生成HTML输出之前执行SQL语句。然后在HTML中使用包含数据库数据(@ID_data)的变量。像这样:

print "   <div style=\"z-index:86;\" class=\"group-shell\">";
print "   <table>\n";
foreach (0 .. $#ID_data) {
  print "<tr><td>ID data $_:</td><td><input name=\"ID_data_$_\" value=\"$ID_data[$_]\"></td></tr>\n";
}
print "   <tr><td><input class=\"dial-red-button\" id=\"importFromCAD\"  type=\"submit\" value=\"Import Info\"></td></tr>\n";

请注意,如果您学习使用heredocs和qq(...),您的代码会更清晰。

print <<END_OF_HTML;
<div style="z-index:86;" class="group-shell">
<table>
END_OF_HTML

foreach (0 .. $#ID_data) {
  print qq(<tr><td>ID data $_:</td><td><input name="ID_data_$_" value="$ID_data[$_]"></td></tr>\n);
}
print qq(<tr><td><input class="dial-red-button" id="importFromCAD"  type="submit" value="Import Info"></td></tr>\n);

如果你使用a templating engine,它会变得更干净。