Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]790[/thread]

hilfe bei tabellen erstellung: brauche hilfe bei tabellen erstellung

Leser: 1


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Gast Gast
 2006-07-27 16:33
#8474 #8474
Hallo erst mal,
ich möchte eine table erstellen wo als hintergrund ein bestimmtes image angezeigt wird, wenn jetzt aber die datenbank abfrage positiv ist sollte ein anderes image erscheinen. Im moment ist es so das wenn die abfrage der datenbank positiv ist einfach ein image erstellt wird.
hier mal ein auszug aus dem script
einmal der html teil
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
sub awardstart {
@awards = ();
}


sub awardrow($$$$) {
my ($award2, $level2, $when2, $first2) = @_;
my ($img2, $name2, $desc2);
my ($award1, $level1, $when1, $first1);
my ($img1, $name1, $desc1);
my $type;

if ($#awards == -1) {
push(@awards, $award2, $level2, $when2, $first2);
} else {
($award1, $level1, $when1, $first1) = @awards;
@awards = ();

$type = substr($award1, 0, 1);
if ($type eq "1") {
$img1 = "img/award_$award1" . "_$level1" . "_small.jpg";
$name1 = $awardname{$award1}[$level1];
$desc1 = $awarddesc{$award1}[$level1];
} elsif ($type eq "2") {
$img1 = "img/award_$award1" . "_small.jpg";
$name1 = "$level1 x $awardname{$award1}";
$desc1 = $awarddesc{$award1};
} else {
$img1 = "img/award_$award1" . "_small.jpg";
$name1 = $awardname{$award1};
$desc1 = $awarddesc{$award1};
}

$type = substr($award2, 0, 1);
if ($type eq "1") {
$img2 = "img/award_$award2" . "_$level2" . "_small.jpg";
$name2 = $awardname{$award2}[$level2];
$desc2 = $awarddesc{$award2}[$level2];
} elsif ($type eq "2") {
$img2 = "img/award_$award2" . "_small.jpg";
$name2 = "$level2 x $awardname{$award2}";
$desc2 = $awarddesc{$award2};
} else {
$img2 = "img/award_$award2" . "_small.jpg";
$name2 = $awardname{$award2};
$desc2 = $awarddesc{$award2};
}

$class = $rowclass[$tableline++ % 2];
print " <tr class=\"$class\">";
print "<td rowspan=\"2\"><img src=\"$img1\" alt=\"$name1\" /></td>";
print "<td>$name1</td>";
if ($award2 > 0) {
print "<td rowspan=\"2\"><img src=\"$img2\" alt=\"$name2\" /></td>";
} else {
print "<td rowspan=\"2\">&nbsp;</td>";
}
print "<td>$name2</td></tr>\n";
print " <tr class=\"$class\">";
print "<td>$desc1</td>";
print "<td>$desc2</td></tr>\n";
}
}

sub awardend {
if ($#awards != -1) {
awardrow(0, 0, 0, 0);
}
}

und hier der teil der die abfrage übergibt
Code: (dl )
1
2
3
4
5
6
7
8
9
  divstart("awards");
tablestart(4, popuphelp($help_awards) . $lab_awards);
awardstart();
foreach $i (0..95) {
awardrow($p{"award"}[$i], $p{"level"}[$i], $p{"when"}[$i], $p{"first"}[$i])
}
awardend();
tableend();
divend();

jetzt sollte es so sein das eine table angezeigt wird wo die awards schon im shadow style zu sehen sind könnte man ja mit Background-image:url () einbinden, wenn die abfrage der datenbank jetzt positiv verläuft soll der shadow verschwinden und das dazugehörige image angeigt werden.
wie sollte dan der html teil aussehen? denn die abfage funz ja.
währe über eure hilfe echt dankbar zerbreche mir schon 5 tage den kopf. und komm zu keinem richtigen ergebniss.
GwenDragon
 2006-07-27 16:56
#8475 #8475
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Mit dem Modul CPAN:CGI kannst du dir einfach Tabellen erstellen lassen.
renee
 2006-07-27 17:28
#8476 #8476
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Oder ein Templating-System wie CPAN:HTML::Template::Compiled verwenden. Das sieht noch sauberer aus.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
junglist
 2006-07-27 18:45
#8477 #8477
User since
2006-07-27
7 Artikel
BenutzerIn
[default_avatar]
so habe mal ein test template erstellt es kommt aber serverfehler error 500
was habe ich gemacht in das hauptscript habe ich
use HTML::Template;
require "awardtmpl.tmpl";
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
################################################################################
#
#
#
#
# AWARD TABLE NEW
#
$img2 = "img/award_$award2" . "_$level2" . "_small.jpg";

$name2 = $awardname{$award2}[$level2];

$desc2 = $awarddesc{$award2}[$level2];
print Content-type:"text/html\n\n";
my $tamplate = HTML::Template->new(filename->'./awardtmpl.tmpl');
my $AWARDTABLE = [{AWARD => '$img', NAME => '$name', DESC => '$desc'}]
$template->param(AWARDTABLE=$AWARDTABLE);
print $template->output();

eingefügt
und meine awardtmpl.tmpl
sieht so aus
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<body>
<table width="200" border="1">
<!--TMPL_LOOP NAME=AWARDTABLE -->
<tr>
<td><!-- TMPL_VAR AWARD=AWARD --></td>
<td><!-- TMPL_VAR NAME=NAME --></td>
<td><!-- TMPL_VAR DESC=DESC --></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

</body>

in meinen Server error log steht
[Thu Jul 27 18:39:40 2006] [error] [client 192.168.*.*] Can't locate HTML/Template.pm in @INC (@INC contains: /usr/lib/perl5/5.8.7/i586-linux-thread-multi /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at /srv/www/htdocs/**/script.cgi line 4.
[Thu Jul 27 18:39:40 2006] [error] [client 192.168.*.*] BEGIN failed--compilation aborted at /srv/www/htdocs/**/script.cgi line 4.
[Thu Jul 27 18:39:40 2006] [error] [client 192.168.*.*] Premature end of script headers: script.cgi
muss ich das Modul vieleicht noch installieren oder ist es ein fehler im script?\n\n

<!--EDIT|junglist|1154011617-->
renee
 2006-07-27 20:25
#8478 #8478
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du muss das Modul erst Wiki:installieren.

Dann ist da auch noch kleine Fehler im Skript:
Code: (dl )
1
2
3
 my $tamplate = HTML::Template->new(filename->'./awardtmpl.tmpl');
my $AWARDTABLE = [{AWARD => '$img', NAME => '$name', DESC => '$desc'}]
$template->param(AWARDTABLE=$AWARDTABLE);


Aus
Code: (dl )
$tamplate = HTML::Template->new(filename->'./awardtmpl.tmpl');

solltest Du das hier machen:

Code: (dl )
my $template = HTML::Template->new(filename =>'./awardtmpl.tmpl');


Ich hoffe, Du verwendest Wiki:[tt]use strict[/tt]
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-07-27 20:27
#8479 #8479
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Quote
Can't locate HTML/Template.pm in @INC (@INC contains: /usr/lib/perl5/5.8.7/i586-linux-thread-multi /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .)

HTML-Template ist nicht auf deinem Server installiert.
pq
 2006-07-27 22:02
#8480 #8480
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
vielleicht sollte einfach mal jemand die meldung erweitern mit
The module Foo::Bar is probably not installed on this machine
oder sowas in der art.
es gibt wirklich viele, die das aus dem "can't locate Foo/Bar.pm" nicht
ableiten können.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
junglist
 2006-07-27 22:48
#8481 #8481
User since
2006-07-27
7 Artikel
BenutzerIn
[default_avatar]
ja habe HTML::Template installiert und use strict auch ein gesetzt, doch dann steht in meiner Log File das ich meine ganzen $.. anweisungen
requires explicit package name at /srv/www/... angeben soll. was soll das denn??und wenn ich use strict weg lasse dann meckert er weil er an Zeile 8
wo die dateien mit require eingebunden sind. Compilation failed in require
muss ich jetzt mein ganzes script umschreiben wegen einer Tabelle die haben will???geht das den nicht auch anders??
bin doch ein Perl noob!!
renee
 2006-07-28 00:21
#8482 #8482
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
In dem Wiki:Artikel steht, dass Du Variablen mit my deklarieren musst. Dann gehen auch die Fehlermeldungen mit dem "requires explicit package name" weg.

Anscheinend hast Du das Skript nicht richtig installiert oder eingebunden.
Natürlich kann man das anders machen, aber mit Template etc. ist sauberer programmiert.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-07-28 00:24
#8483 #8483
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=pq,27.07.2006, 20:02]vielleicht sollte einfach mal jemand die meldung erweitern mit
The module Foo::Bar is probably not installed on this machine
oder sowas in der art.
es gibt wirklich viele, die das aus dem "can't locate Foo/Bar.pm" nicht
ableiten können.[/quote]
Melde es doch an Nick. Der koennte da was aendern...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2006-07-27 16:33.