Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Subroutine über Formularbutton aufrufen
Autor: rooot [Beiträge: 2]
Datum: 22.09.2009 14:07:11
Hallo,
ich möchte eine Subroutine über einen Button in einem eingebetteten HTML Formular ausführen.
Habe dies mit folgendem Code probiert aber ohne Erfolg.
while (my @row = $prep_sql->fetchrow_array())
{
    print qq{<form action="StundenzettelKom.pl?action=test"  method="post">};
    print qq{<td><input type=button value="test" onClick="submit()"/>n</td>};
    print qq{<td><input type="text" name="ID_Tabelle_Zeiten" value="$row[0]" />n</td>};
    print qq{<td><input type="text" name="Vorname" value="$row[1]" />n</td>};
......}
$query = new CGI;
$command = $query -> param('action');
if ($command eq "test") {&test}
sub test {
 
my $db_name = 'Stundenzettel';
my $db_user  = '*****';
my $db_pass = '*****';
my $db_host = 'localhost';
my $dbh = DBI->connect('DBI:mysql:'.$db_name.':'.$db_host,$db_user,$db_pass) or die $DBI::errstr;
read(STDIN, $Formulardaten, $ENV{'CONTENT_LENGTH'});
@Formularfelder = split(/&/, $Formulardaten);
foreach $Feld (@Formularfelder)
{
  ($Name, $Value) = split(/=/, $Feld);
  $Value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $Value =~ s/~!/ ~!/g;
  $Value =~ s/|/|/g;
 
  if($Name eq "ID_Tabelle_Zeiten") { $ID_Tabelle_Zeiten = $Value; }
  if($Name eq "Vorname") { $Vorname = $Value; }
  if($Name eq "Nachname") { $Nachname = $Value; }
  if($Name eq "Datum") { $Datum = $Value; }
  if($Name eq "Ort") { $Ort = $Value; }
  if($Name eq "Anfang") { $Anfang = $Value; }
  if($Name eq "Ende") { $Ende = $Value; }
  if($Name eq "Stunden") { $Stunden = $Value; }
  if($Name eq "Pausen") { $Pausen = $Value; }
  if($Name eq "Unterschrift") { $Unterschrift = $Value; }
  if($Name eq "Ueberstunden") { $Ueberstunden = $Value; }
  if($Name eq "Gesamtstunden") { $Gesamtstunden = $Value; }
}
my $insert = 'INSERT INTO Tabelle_Zeiten (ID_Tabelle_Zeiten,Vorname,Nachname,Datum,Ort,Anfang,Ende,Stunden,Pausen,Unterschrift,Ueberstunden,Gesamtstunden) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)';
my $sth = $dbh->prepare($insert) or die $dbh->errstr();
$sth->execute("$ID_Tabelle_Zeiten","$Vorname","$Nachname","$Datum","$Ort","$Anfang","$Ende","$Stunden","$Pausen","$Unterschrift","$Ueberstunden","$Gesamtstunden") or die $dbh->errstr();
$dbh->disconnect();
}
In der Subroutine sollen die eingegebenen Formulardaten in eine Datenbank geschrieben werden.Das Problem dabei ist, ich muß ein Unterprogramm erstellen damit der Code des Abschnitts für den Datenbankzugriff nur beim Eintragen eines Datensatzes ausgeführt wird.Wenn die Seite über den Browser ausgeführt wird, trägt sich sonst immer ein neuer Datensatz ein.Nun möchte ich das Problem über einen Button der auf die Subroutine zugreift realisieren.Außerdem soll das Programm nur in einer Datei stehen.Ist das möglich?
Danke schon im voraus?
rooot
 
Beiträge
- Subroutine über Formularbutton aufrufen - rooot 22.09.2009 14:07 (2)
Zum Abschicken deines Beitrags bitte die Schaltfläche "Abschicken" nur einmal anklicken und warten. Der Server braucht manchmal
einige Zeit, bis er den Beitrag in die Datenbank übernommen hat. Wenn du die Schaltfläche mehrmals drückst, erscheint dein Beitrag
auch mehrmals im Forum.
Bewerten Sie Ihren Webhosting-Provider
Wie zufrieden sind Sie mit Ihrem Webhosting-Provider? Gibt es Probleme beim Service, mit der Performance oder der Abrechnung?
Teilen Sie jetzt Ihre Erfahrungen mit anderen Webmastern und schreiben Sie eine Provider-Bewertung. Mit etwas Glück können Sie ein Apple iPad gewinnen!
Weitere Informationen und Teilnahme...
|