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

texfield bei Aktion füllen...: Ist das überhaupt möglich? (Seite 2)



<< |< 1 2 3 4 5 >| >> 42 Einträge, 5 Seiten
nepos
 2006-01-06 18:16
#6458 #6458
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Klar:
Code: (dl )
print textfield({-name=>'lala',-value=>'dassollrein'});


Naeheres findest du aber auch unter perldoc CGI.\n\n

<!--EDIT|nepos|1136564379-->
bloonix
 2006-01-07 00:16
#6459 #6459
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=zipster,05.01.2006, 18:08]ich würde gerne in meiner Homepage ein bestimmtes textfield bei einer Aktion z.b. drücken eines Buttons füllen. Wie kann ich das umsetzten?
[/quote]
Hallo Seri,

meinst du sowas ...

- Workflow -

Greez,
opi\n\n

<!--EDIT|opi|1136586294-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
zipster
 2006-01-07 16:45
#6460 #6460
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
[quote=opi,06.01.2006, 23:16][quote=zipster,05.01.2006, 18:08]ich würde gerne in meiner Homepage ein bestimmtes textfield bei einer Aktion z.b. drücken eines Buttons füllen. Wie kann ich das umsetzten?
[/quote]
Hallo Seri,

meinst du sowas ...

- Workflow -

Greez,
opi[/quote]
Hi opi,

wie ist den das umgesetzt? Mit einem Javascript?
Oder ist das pur CGI? denn das "onchange=" kenn ich nur in verbindung mit CGI
(sorry wenn das ne dumme frage ist)

Gruß

Seri\n\n

<!--EDIT|zipster|1136645286-->
pq
 2006-01-07 17:56
#6461 #6461
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
Code: (dl )
onchange="this.form.submit()"

das ist javascript.
bei selfhtml.org findest du eine umfangreiche javascriptreferenz.
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
bloonix
 2006-01-07 18:14
#6462 #6462
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=zipster,07.01.2006, 15:45]wie ist den das umgesetzt? Mit einem
Javascript?[/quote]

Ja, das ist Javascript. Es bewirkt, dass beim Ändern eines Feldes ein Request
ausgelöst wird und das Formular wird zum Webserver gesendet. Der
Nachteil ist bekannt. Wenn jemand Javascript im Browser deaktiviert hat,
dann funktioniert das Ganze nicht. Für diesen Fall solltest du trotzallem
einen Button bereitstellen oder wenn es möglich ist, herausfinden, ob im
Browser des Gastes/Kunden Javascript aktiviert ist.

[quote=zipster,07.01.2006, 15:45]Oder ist das pur CGI? denn das
"onchange=" kenn ich nur in verbindung mit CGI[/quote]

Bitte verwechsel das nicht. Perl, CG[b]I[/b], PHP... das alles hat überhaupt
nichts mit Javascript zu tun. Mit Perl, PHP etc. generierst du dynamisch auf
dem Webserver die Daten, die anschließend an den Browser des Clients
gesendet werden. Mit Javascript hast du die Möglichkeit, die Seite im
Browser zu manipulieren, ohne einen neuen Request zu starten und diese
"Manipulationen" laufen nicht auf dem Webserver, sondern auf dem Client.

[quote=zipster,07.01.2006, 15:45]wie ist den das umgesetzt?[/quote]

Eigentlich ist da nicht viel dran. Ich lese die Umgebung aus, die meinem
Perlskript mit dem Request übergeben wird und werte sie dann aus.

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
my (%argv,@param);

if ($ENV{'REQUEST_METHOD'} eq 'GET') {
  @param = split /&/, $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
  read(STDIN, my $env, $ENV{'CONTENT_LENGTH'});
  @param = split /&/, $env;
}

foreach (@param) {
  my ($name,$value) = split /=/, $_;
  $name  =~ tr/+/ /;
  $name  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

  # untaint name and value

  next unless $name =~ /^(\w+)$/;
  $name = $1;

  next unless $value =~ /^([a-zA-Z_0-9 ]+)$/;
  $argv{$name} = $1;
}

# hier habe ich die Betriebssysteme definiert.

my %os = (
  Linux => [ 'SuSE', 'Red Hat', 'Debian', 'Mandrake' ],
  Windows => [ 'WIN95', 'WIN98', 'WINME', 'WINXP' ]
);


Wenn also in $argv{OS} "Linux" oder "Windows" abgelegt ist, nur dann
sende ich an den Browser die nächste Auswahlliste.

Code: (dl )
1
2
3
if ($os{$argv{OS}}) { # der Key muss da sein
  # dann sende die nächste Liste (<select><option></option></select>) ...
}


Ok?

[quote=zipster,07.01.2006, 15:45]
(sorry wenn das ne dumme frage ist)
[/quote]

Wer nicht fragt bleibt dumm. Frag also solange, bis dir der Mund
abfällt und die Finger abfaulen :-)\n\n

<!--EDIT|opi|1136655768-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2006-01-08 07:41
#6463 #6463
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@opi: Anstatt Deinen Code fuer das Auslesen der Parameter empfehle ich dringenst CPAN:CGI genau anzuschauen und die Methode Vars() zu verwenden. Was, wenn auf einmal ; und nicht mehr & das Trennzeichen zwischen den Parametern ist??
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/
bloonix
 2006-01-08 13:40
#6464 #6464
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,08.01.2006, 06:41]Was, wenn auf einmal ; und nicht mehr & das Trennzeichen zwischen den Parametern ist??[/quote]
Wie sollen denn die Semikolons anstatt der kaufmännischen UNDs in die
Parameterzeile gelangen? Das Trennzeichen gibt ja noch immer der
"Eigentümer" der Seite vor und nicht der Besucher. Der Besucher sollte die
Links anklicken, die ihm zur Verfügung gestellt werden. Wenn er das
nicht macht, dann sollte er das Trennzeichen nutzen, dass verlangt wird.

Edit:

Kann man eigentlich das Trennzeichen für Formularsdaten vorgeben?\n\n

<!--EDIT|opi|1136720792-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Dubu
 2006-01-08 14:55
#6465 #6465
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=opi,08.01.2006, 12:40][quote=renee,08.01.2006, 06:41]Was, wenn auf einmal ; und nicht mehr & das Trennzeichen zwischen den Parametern ist??[/quote]
Wie sollen denn die Semikolons anstatt der kaufmännischen UNDs in die
Parameterzeile gelangen? Das Trennzeichen gibt ja noch immer der
"Eigentümer" der Seite vor und nicht der Besucher.[/quote]
Wenn die Parameter - wie in den meisten Faellen - aus Formularen stammen, dann gibt der Browser das Trennzeichen vor. Zulaessig sind, wie renee geschrieben hat, '&' und ';'. Dass das Semikolon nur selten genutzt wird, heisst nicht, dass man es nicht pruefen sollte. Dieses Forum benutzt z.B. bei seinen festen Links ';' statt '&', wie du der URL-Zeile entnehmen kannst.
Auch beruecksichtigt dein Code keine Parametern, die mehrere Werte annehmen koennen (Checkboxen!). Und die Auswahl der Positivliste fuer Parameternamen und -werte ist zwar schoen restriktiv (= sicher), beschraenkt aber die allgemeine Anwendbarkeit recht stark.

Bei CGI-Skripten die CGI-Parameter manuell auseinander zu nehmen ist eigentlich seit fast 10 Jahren nicht mehr noetig, denn so lange gibt es CGI.pm. Und seit Perl 5.004(!), also seit 1998, ist CGI.pm Bestandteil der Standard-Distribution, d.h. seitdem gibt es auch keinen Grund, darauf zu verzichten.[1] So ein  selbstgeschriebener Auswertecode ist meist nicht vollstaendig und oft nicht robust. CGI.pm hat viele Tests hinter sich, laeuft auf allen Plattformen, auf denen Perl laeuft, kommt mit mod_perl und mod_perl2 klar, erlaubt File Uploads und ist robust und zuverlaessig.

Jetzt kannst du natuerlich sagen: "Diese ganzen Spezialfaelle, die CGI.pm behandelt, brauche ich doch fuer meine CGIs gar nicht." Gut, aber dann behalte deinen Code fuer dich! Wenn du deinen "Works-for-me" Code hier oder sonstwo veroeffentlichst, dann lesen und uebernehmen ihn auch andere, die vielleicht nicht beurteilen koennen, wie zuverlaessig, sicher und robust er ist. Der Aerger mit "Matt's Script Archive" sollte jedem hier noch bekannt sein.

Just my 0.02$.

[1] Einige Programmierer befuerchten, dass ihr Programm durch die Einbindung von CGI.pm zu langsam wird. Dabei sollte man aber beruecksichtigen, dass ein grosser Teil der von CGI.pm zur Verfuegung gestellten Funktionen per AUTOLOAD aktiviert werden und nicht schon beim "use CGI" kompiliert werden muessen.
bloonix
 2006-01-08 18:40
#6466 #6466
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hallo Dubu,

[quote=Dubu,08.01.2006, 13:55]Bei CGI-Skripten die CGI-Parameter manuell auseinander zu nehmen ist eigentlich seit fast 10 Jahren nicht mehr noetig, denn so lange gibt es CGI.pm.[/quote]

Ok, dann hätte ich das Skript vielleicht workflow.pl nennen sollen und nicht
workflow.cgi, denn von CGI wird in dem Skript nichts genutzt. Im Netz
wimmelt es trotzallem mit Perl-Beispielen, wie man die Parameter ohne
CPAN CGI auseinandernehmen kann und das mit gutem Grund.

Es kommt eigentlich garnicht auf den Grund an, denn wenn jemand CGI
nicht nutzen und gerne wissen möchte, wie die Parameterliste verarbeitet
werden kann, dann ist dieses Stück Code wie viele andere auch ein Anfang.
Das nicht alle Möglichkeiten abgedeckt werden - hier nehme ich Bezug auf
die Checkboxen - hätte ich vielleicht noch dazu schreiben sollen. Es Bedarf
für diesen Fall um einige Erweiterungen.

[quote=Dubu,08.01.2006, 13:55]Jetzt kannst du natuerlich sagen: "Diese ganzen Spezialfaelle, die CGI.pm behandelt, brauche ich doch fuer meine CGIs gar nicht." Gut, aber dann behalte deinen Code fuer dich![/quote]

Ich sage das sicherlich nicht und ich verstehe auch deinen Ausbruch nicht.
Meine Antwort auf Renee's Beitrag bezog sich auf die Trennzeichen, nicht
auf die Verwendung von CGI.pm. Ich halte sehr viel von CGI, aber für meine
wenigen Projekte habe ich mich für HTML::Template entschieden - bald
vielleicht auch *::Compiled - und von Misch Masch halte ich überhaupt
nichts.

Wer CGI nutzt, sollte auch die Möglichkeiten von CGI verwenden und keine
eigenen Dinger drehen, wie zum Beispiel die Verarbeitung der Parameter.

Der OP wollte von mir wissen, wie ich das gemacht habe und es tut mir
Leid, falls ich ihn dazu angeregt habe, meine Beispielverarbeitung der
Paramterliste zu verwenden - bitte mache das nicht :-).

[quote=Dubu,08.01.2006, 13:55]Wenn du deinen "Works-for-me" Code hier oder sonstwo veroeffentlichst, dann lesen und uebernehmen ihn auch andere, die vielleicht nicht beurteilen koennen, wie zuverlaessig, sicher und robust er ist.[/quote]

Ich gebe zu, dass war vielleicht ein wenig nachlässig von mir, aber es bleibt
kein Grund für dich offen, so zu reagieren.

[quote=Dubu,08.01.2006, 13:55]Der Aerger mit "Matt's Script Archive" sollte jedem hier noch bekannt sein.

Just my 0.02$.[/quote]

Das war sicherlich ein Insider, denn als Moderater wirst du sicherlich
wissen, dass ich erst seit kurzem hier im Forum bin und deine Bemerkung
nicht verstehe.

Mir wird hier bei vielen Fragen auf freundliche Weise weitergeholfen und
genau das möchte ich gerne zurückgeben - genauso, wie es sich in einer
Perlgemeinde gehört. Auf viele Fragen und auch Antworten versuche ich
neue Denkanstöße zu geben. Das nicht alles 100%ig ist, kommt selbst bei
den Besten vor. Ich nehme deine Kritik entgegen und arbeite dran.

Einverstanden?

Wenn du magst, kannst du mir gerne den Insider erklären.
Ich bin neugierig.

Greez,
opi
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
ptk
 2006-01-08 21:29
#6467 #6467
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn man CGI.pm für Parameterhandling nicht mag, dann kann man CPAN:URI (siehe query_form) verwenden. Ist für mich egal, ich kann die CGI-Syntax zum Parameterhandling auswendig und verwende es überall, sogar in Tk-Programmen, in denen dynamisch ein Querystring aufgebaut wird.
<< |< 1 2 3 4 5 >| >> 42 Einträge, 5 Seiten



View all threads created 2006-01-05 19:08.