Oracle 데이터베이스에서로드하는 두 개의 열이있는 테이블이 있습니다.
한 열에 포함 employee_name
되고 다른 열은phone_no
이메일 css
로 html
테이블 을 보내기 위해 perl 에서 스크립트를 실행하고 있습니다 . 그러나 사용자 친화적 인 방식으로 테이블을 표현하고 싶습니다.
예 :
열 1 셀의 bg 색상을 빨간색으로 변경하고 싶습니다 emplpyee_name=steven
.
열 2 셀의 bg 색상을 빨간색으로 변경하고 싶습니다. phone_no=null
bgcolour
로드 하는 동안 동적으로 변경하고 싶습니다 . 나는 jQuery
css / html에서만 가능합니까?
#!/efs/dist/perl5/core/5.8/exec/bin/perl
use EFSPerl::Version (
'DBD-Oracle' => '1.19',
'DBI' => '1.58'
);
use DBI;
use CommonFunctions;
my @HTML =();
$STYLE=<<STYLE;
<style type="text/css">
.myTable { background-color:#E6F0FF;border: 1px solid blue;border-collapse: collapse; }
.myTable th { background-color:#0066FF;color:white;font-size: 100%; }
.myTable td { padding:3px;border:1px solid #0066FF; }
</style>
STYLE
push(@HTML,"$STYLE");
push(@HTML,"<table class=\"myTable\" border=1>\12<tr bgcolor=708090><th>EMPLOYEE_NAME</th><th>PHONE_NO</th></tr>");
$retCode=executeSQL(" SELECT EMPLOYEE_NAME, PHONE_NO FROM EMPLOYEE_TABLE");
push(@HTML,"</table>\12\12");
if($retCode) {
push(@HTML,"<tr><td> </td><td><td></td>");
push(@HTML,"<td></td><td></td></tr>\12");
}
&sendMail;
sub sendMail
{
$sub="test report";
$from='[email protected]';
$to='[email protected]';
open(MAIL, "|/usr/lib/sendmail -t");
print MAIL "From: $from \12"; print MAIL "To: $to \12";print MAIL "Cc: $Cc \12";
print MAIL "Subject: $sub \12";
print MAIL "Content-Type: text/html \12";
print MAIL "Content-Disposition:inline \12";
print MAIL @HTML;
close(MAIL);
}
sub executeSQL
{
my $SQL=$_[0];chomp($SQL);
print "$SQL\12";
my $dsn = "dbi:Oracle:host=server.com;sid=sample;port=1111;";
my $dbuser = "username";
my $dbpass = 'password';
my $dbh = DBI->connect($dsn, $dbuser, $dbpass, { RaiseError => 1, AutoCommit => 0 });
my $sth=$dbh->prepare($SQL);
$sth->execute or die "EXEC ERROR $sth->errstr";
$count=0;
while (@ary = $sth->fetchrow_array) {
$count++;
push(@HTML,"<tr>");
foreach(@ary) {
chomp($_);
push(@HTML,"<td>$_</td>");
print "$_,";
}
push(@HTML,"</tr>\12");
}
$dbh->disconnect();
print "COUNT : $count\12";
return 1 if($count==0);
}
"로드하는 동안 배경색 변경"을 원할 때 제대로 설정되었는지 잘 모르겠습니다. 그러나 수신 전자 메일 클라이언트가 HTML을 렌더링하면 더 이상 동적 프로세스가 없습니다. 모든 데이터베이스 상호 작용은 스크립트에 의해 수행됩니다. 따라서 Perl 스크립트에 배경색을 적용 할 수 있으며 JavaScript 또는 jQuery가 필요하지 않습니다.
작은 코드 조각 만 변경하면됩니다.
"STYLE"-here-doc에서 추가
td.alert { padding:3px;border:1px solid #0066FF; background-color: #ff0000;}
executeSQL의 while-loop 본문을 다음과 같이 수정하십시오.
$count++;
push(@HTML,"<tr>");
chomp($ary[0]);
push(@HTML,sprintf("<td%s>%s</td>",
($ary[0] eq "steven") ? " class=\"alert\"" : "",
$ary[0]));
chomp($ary[1]);
push(@HTML,sprintf("<td%s>%s</td>",
(!length($ary[1]) || $ary[1] eq "1234") ? " class=\"alert\"" : "",
$ary[1]));
push(@HTML,"</tr>\12");
두 번째 열의 빈 항목 또는 항목 "1234"를 강조 표시합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다