Thread Hinzufügen von Spalten in einer Tabelle (105 answers)
Opened by piero at 2004-04-26 12:59

renee
 2004-04-26 16:11
#2192 #2192
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich würde das etwas anders lösen:

Schon mal mit HTML::Template gearbeitet?? Wenn nein, dann kann ich es Dir nur empfehlen (Hier findest Du ein paar Informationen mehr: http://perl.renee-baecker.de/HTML_Template.pdf )!

Erstelle Dir ein Template, das im Grunde so aussieht:
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
<html>
<body>
<FORM action="/cgi-franz-kahl/skript.pl" method="post">
<table>
<tr>
<td width="5%">Stueck</td>
<td width="80%">Artikel</td>
<td width="15%">EURO</td>
</tr>
<!-- TMPL_LOOP NAME=ARTIKELLISTE -->
<tr>
<td><!-- TMPL_VAR NAME=STUECK --></td>
<td><!-- TMPL_VAR NAME=ARTIKEL --></td>
<td><!-- TMPL_VAR NAME=EURO --></td>
</tr>
<!-- /TMPL_LOOP -->
<tr>
<td><INPUT size=5 name="STUECK"></td>
<td><INPUT size=90 name="ARTIKEL"></td>
<td><INPUT size=5 name="EURO"></td>
</tr>
<tr>
</table>
<input name="add" type="submit" value="Artikel hinzufügen"> * <input type="submit" name="email" value="E-Mail abschicken">
<input type="hidden" value="<!-- TMPL_VAR NAME=ALT ESCAPE=HTML -->" name="alt">
</form>
</body>
</html>


und statt der statischen HTML-Seite rufst Du folgendes Skript auf:
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
#! /usr/bin/perl 
use strict;
use warnings;
use diagnostics;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use HTML::Template; # musst Du Dir evtl. noch installieren

my $cgi = CGI->new();
my %params = $cgi->Vars();
print $cgi->header(-type => 'text/html');

my $template = HTML::Template->new(filename => 'template.html');
if($params{add}){ # wenn artikel hinzugefügt werden soll
my @loop = ();
if($params{alt}){
my @artikel = split(/;/,$params{alt});
foreach(@artikel){
my ($art_name,$stueck,$euro) = split(/#/,$_);
push(@loop,{ARTIKEL => $art_name, STUECK => $stueck, EURO => $euro});
}
}
push(@loop,{ARTIKEL => $params{ARTIKEL}, STUECK => $params{STUECK}, EURO => $params{EURO});
my $alte = $params{alt}.";$params{ARTIKEL}#$params{STUECK}#$params{EURO}";
$template->param(ALT => $alte,
ARTIKELLISTE => \@loop);
}
else{
# Mail versenden
}
print $template->output();


Wie das dann ausssieht siehst Du hier: http://renee-baecker.de/renee_cgi/template_test.cgi
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/

View full thread Hinzufügen von Spalten in einer Tabelle