Patrick Andrieu: Radiobuttons - Zusatzfragen

Beitrag lesen

Hallo Siggi!

Wie erhalte ich in Perl die Info, welcher Button gedrückt ist?

Du musst zunächst die Formulardaten an Dein Perl-Script weitergeben:

<form action="/cgi-bin/mein_script.pl" method="post">

Dein Script "mein_script.pl" muss in der Lage sein, die übermittelten Daten zu parsen. Das geht entweder mit einer selbst geschriebenen Parse-Funktion oder - am einfachsten - wenn Du auf ein bestehendes Modul zurückgreifst (z.B. Modul CGI), das diese Parse-Funktion bereits enthält:

  
#!/usr/bin/perl -w  
#                ^ Schreibt Fehler und Warnungen in eine Datei  
  
use strict;  
#   ^Strikt-Pragma  
  
  
use CGI::Carp qw(fatalsToBrowser);  
#             ^ Schickt die "fatalen" Fehler (also jene, die zum einem Programm-Abruch, einer 500er-Meldung führen) als Ausgabe an den Browser, z.B.: "Software Error: Missing right bracket ... near ... at line ..."......  
use CGI qw(param);  
#       ^ Eine Möglichkeit des CGI-Moduls, Formulardaten zu bearbeiten  
  

Um Dein Formularbeispiel wieder aufzugreifen, den ich für die folgenden Erläuterungen um weitere Felder erweitere:

<input type="radio" name="Zahlmethode" value="Mastercard"> Mastercard<br>
    <input type="radio" name="Zahlmethode" value="Visa"> Visa<br>
    <input type="radio" name="Zahlmethode" value="AmericanExpress"> American Express
     <input type="text" name="Nachname" value="">
     <textarea name="Mitteilung"><textarea>

Um die an das Perl-Script beim Abschicken des Formulars übermittelten Daten zu bearbeiten, deklarierst Du Variablen wie folgt:

my $Nachname = &param('Nachname');
my $Mitteilung = &param('Mitteilung');
my $Zahlmethode = &param('Zahlmethode');

print "Herr/Frau $Nachname sagt $Mitteilung und zahlt mit $Zahlmethode\n";

Bei Radiobuttons handelt sich um gruppierte Elemente. Von allen Radiobuttons, die zu einer Gruppe gehören (den gleichen name="" haben), wird einzig der Wert des jeweils angekreuzten übermittelt. Wenn Dein Kunde also mit Visa zahlen will (Visa-Radiobutton ankreuzt), Meyerhuber heißt, und nur Hallo sagt, würde obige print-Ausgabe sein:

Herr/Frau Meyerhuber sagt Hallo und zahlt mit Visa.

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?