Schrift
[thread]342[/thread]

HTML::template, Select & Vorbelegung: geht das?



<< >> 7 Einträge, 1 Seite
pktm
 2004-08-01 23:32
#3288 #3288
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

gibt es eine Möglichkeit in Webseiten die mittels HTML::Template generiert werden via TMPL_IF oder ähnliches eine option-Box innerhalb einer Auswahlliste (select) vorzubelegen oder muss ich da was im Script machen?

mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Ronnie
 2004-08-01 23:39
#3289 #3289
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Nimm in dein TEMLPATE_LOOP ein TMPL_VAR NAME="selected" rein, das entweder leer ist oder als Wert "selected" hat. Funktioniert gut so.

Gruß,
Ronnie\n\n

<!--EDIT|Ronnie|1091389220-->
pktm
 2004-08-02 00:50
#3290 #3290
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Das ist eine Idee.
Leider habe ich das Problem, dass ich 3 verscheidene Loops mit ein und dem selben Inhalt habe (man kann drei mal Zimmerart und Anzahl eingeben). So müsste ich das ganze drei mal machen - dazu bin ich jetzt zu faul.
Kommt in der nächsten Version rein :)
Im Moment gebe ich einfach das Selectoerte Ding zweimal aus:
[html]
<select name="Select3" >
<TMPL_LOOP Loop>
<TMPL_IF >
<TMPL_IF Select3><TMPL_VAR Select3></TMPL_IF>
</TMPL_IF>
<option><TMPL_VAR Option></option>
</TMPL_LOOP>
</select>
[/html]

Eine bislang unsaubere Art gebe ich zu.
Aber wenn euch einfällt, wie man dashiet kürzer als dreimal schrieben köntne würde ich es auch sofort ändern ;)
Code: (dl )
1
2
3
4
5
6
7
$self->param('ZimmerTypen' => ['Einzelzimmer', 'Doppelzimmer', 'Französisches Bett', 'Suite']);
my $zimmerTypen = [];
foreach( @{$self->param('ZimmerTypen')} ){
# keine Auswahl, alle default geschlossen
push @{$zimmerTypen}, { 'ZimTyp' => $_ };
}
$t->param('Loop' => $zimmerTypen);

mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2004-08-02 10:15
#3291 #3291
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich weiß jetzt nicht, ob ich genau verstanden habe, was Du im Endeffekt haben willst. Aber ich habe mal was gemacht:
Template:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<body>

<!-- TMPL_LOOP NAME=OUTER -->
<select name="<!-- TMPL_VAR NAME=SELNR ESCAPE=HTML -->">
<!-- TMPL_LOOP NAME=LOOP -->
<option <!-- TMPL_IF NAME=SEL -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR NAME=ZIMMER --></option>
<!-- /TMPL_LOOP -->
</select>
<!-- /TMPL_LOOP -->

</body>
</html>


Skript:
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
#! /usr/bin/perl
use strict;
use warnings;
use diagnostics;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use lib qw(./perllib);
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 => '../booking.tmpl');

my @zimmertyp = qw(Einzelzimmer Doppelzimmer Suite Präsidentensuite);
my $loop = [];

foreach(@zimmertyp){
my $selected = 0;
$selected = 1 if($_ eq 'Doppelzimmer');
push(@{$loop},{ZIMMER => $_, SEL => $selected});
}

my $outer = [];
for(1..3){
push(@$outer,{SELNR => 'select'.$_, LOOP => $loop});
}

$template->param(OUTER => $outer);

print $template->output();


Probier es einfach mal aus, ob es das ist, was Du haben willst...
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/
Alex
 2004-08-02 20:41
#3292 #3292
User since
2003-12-04
285 Artikel
BenutzerIn
[default_avatar]
@pktm: Was hast Du denn vor, wenn das mal fertig ist?
Interessiert mich aus beruflichen Gründen.
<center>Schönen Gruß, Alex
Mit dem Computer geht alles viel schneller - es dauert nur ein bißchen länger!
</center>
pktm
 2004-08-02 22:15
#3293 #3293
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
@Alex: Das soll ein Formular für Zimmerreservierungen für ein Hotel werden. Das ist Bestandteil eines CMS das ich gerade für ein Hotel baue :)

@renne: Das was du da vorschlägst ist die aubere Methode dessen, was ich da gemacht habe.
Nur, dass du nur ein Loop ausgibst.
Ich verwende den Loop aber drei mal im Formular, damit der Benutzer sich drei verschiedene Zimmertypen mit unterschiedlicher Menge aussuchen kann (muss aber nicht alle drei).
Das bedeutet wiederum, dass ich die foreach() im Script dreimal für jeden Loop machen müsste.
Da ich im Moment aber etwas unter Zeitdruck stehe bleibt es bis zur Aktualisierung (keine Angst, nächsten Monat wird es wohl soweit sein :cool: ) erstmal stehen.

@Alex, wie ist den die Websiete von deinem Hotel?

mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Alex
 2004-08-02 22:34
#3294 #3294
User since
2003-12-04
285 Artikel
BenutzerIn
[default_avatar]
[quote=pktm,02.08.2004, 20:15]@Alex, wie ist den die Websiete von deinem Hotel?[/quote]
ibis Hotels weltweit
ACCOR - alle 4000
- soll keine Werbung sein. ;)

Da findest Du sowas in Perfektion!

Ist aber ein gemeiner Vergleich, weil: Weil ibis alleine ca. 700 Hotels hat und wir zu Accor gehören, was dann 4000 Hotels weltweit ausmacht! Und die sind alle mit einem Programm, dass speziell für Accor programmiert wurde, vernetzt.

Du schreibst das wahrscheinlich für ein privat geführtes Hotel, bei dem die Reservierung dann per eMail oder Fax ankommt.? Bei uns wird online in Echtzeit die tatsächliche Verfügbarkeit direkt im System der ausgewählten Hotels geprüft und wenn noch Zimmer frei sind sofort im Hotelsystem fest eingebucht, ohne Zutun eines Mitarbeiters. Spart enorm Zeit und Personalkosten.

Das Ding ist aber noch viel größer als man es auf den ersten Blick erkennen kann. Du siehst nur die Schnittstelle für das Internet. Jedes Hotel von uns hat ebenfalls eine angeschlossene Software laufen, so dass DU von unserem Tresen bei einem Mitarbeiter fix in allen anderen Hotels buchen kannst. Desweiteren gibt es für Reisebüros eigene Lösungen ebenso für unser Salestem oder auch für Großkunden z. B. Siemens oder BMW die ja eigene "Trafficmanager" haben. Aber alles läuft zentral in Frankreich über einen Maschinenpark.
Ebenso gibt es Schnittstellen zu den anderen großen Onlineportalen oder den ganzen GDS sowie zu den Airlines...

Und alles noch viel ausgefeilter: z. B: Tausende Möglichkeiten Statistiken zu ziehen. Für jede Gruppe können andere Raten geladen werden, Kundenerkennung, usw...

Sorry, hoffe ich habe Dich jetzt nicht demotiviert.
Aber wenn Du ein paar Fragen aus der Sicht vom Hotel (Ich kann auch das von den Kleinen) oder Handling hast - nur zu.
<center>Schönen Gruß, Alex
Mit dem Computer geht alles viel schneller - es dauert nur ein bißchen länger!
</center>
<< >> 7 Einträge, 1 Seite



View all threads created 2004-08-01 23:32.