selfhtml.de - Alles für den Webmaster!

 

Empfehlung:

wix.com

Kostenlose Homepage

Besuchen Sie auch:

Jobs:

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

Antwort schreiben

Username: Usernamen registrieren
Passwort: Passwort vergessen?
Thema:
  Bitte benutze für deinen Beitrag die Groß-/Kleinschreibung!
Beitrag:
Link (URL):
Titel für Link:
Grafik (URL):
  Die Breite der Grafik darf 468 Pixel nicht überschreiten.
 
E-Mail-Benachrichtigung:



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

Webhosting Provider bewerten und Apple iPad gewinnenWie 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...