SQL-PERL Formular übertragen
juha
- sonstiges
Hallo Miteinander
In meinem Perl Programm lese ich die Sollzeiten der zwölf Monate aus der SQL-Datenbank und gebe diese in einem HTML-Formular aus.
Der User soll diese Daten nach Wunsch bearbeiten können und dies mit Hilfe des Speichern Buttons dem Perl-Programm übermitteln, welches diese neuen Daten anstelle der alten am selben Ort abspeichert!
Die Ausgabe der Daten im HTML habe ich bereits, aber die Daten zurückgeben an das Programm und diese dort abspeichern ist mir ein Rätsel!
Wie kann ich das lösen?
Hier der vorhandene Code:
print "<body bgcolor='#E7F7FF'><font face='arial'>";
print "<center>";
print "Bitte achten sie auf das Format!<br>(hh:mm:ss oder hhh:mm:ss)";
print "<form method='POST' action='zeiterfassung.cgi'>";
print "<bg color='#E7F7FF'>";
print "<table border='0'>";
print "<tr>";
print "<td bgcolor='#99CCFF'>Monat</td>";
print "<td bgcolor='#99CCFF'>Sollzeit</td>";
print "</tr>";
#print "Sollzeiten werden angezeigt!";
for(my $monatzaehler = 1; $monatzaehler < 13 ; $monatzaehler++)
{
$select = "select * from soll where soll_monat = '$monatzaehler' and soll_jahr = '$jahr'";
my($sollzeit) = $dbh->prepare($select);
$sollzeit->execute();
$hash_sollzeit = $sollzeit->fetchrow_hashref;
$sollstunden = $hash_sollzeit->{soll_stunden};
$liste[$monatzaehler] = $sollstunden;
#Tagestotal berechnen und ausgeben
$stunde = "".int($sollstunden/3600)."";
$minute = "".int(($sollstunden-($stunde*3600))/60)."";
$sekunde = "".int(($sollstunden-($stunde*3600)-($minute*60)))."";
$sollstunden = 0;
zeitformat();
$zeit = "$stunde:$minute:$sekunde";
$stunde = 0;
$minute = 0;
$sekunde = 0;
show_monatname($monatzaehler);
print " <tr>";
print "<td bgcolor='#E7F7FF'>$monat_name</td>";
print "<td bgcolor='#E7F7FF'><input type='text' name='$monat_name' value='$zeit' size='20'></td>";
print "</tr>";
$zeit =0;
#hier wird das sollzeit.htm aufgerufen und die $sollstunden in die Felder für bearbeitung eingetragen
}
print "<tr>";
print "<td bgcolor='#E7F7FF'></td>";
print "<td bgcolor='#E7F7FF'><input type='submit' value='Speichern' name='B1'></td>";
print "</tr>";
print "</table>";
print "</form>";
print "</center>";
print "</body>";
Danke vielmals
Grüsse
Juha
Hi,
Die Ausgabe der Daten im HTML habe ich bereits, aber die Daten zurückgeben an das Programm und diese dort abspeichern ist mir ein Rätsel!
da Du bereits Datenbankzugriffe erfolgreich durchführst, kann es ja eigentlich nur um das Auswerten der Formulardaten gehen. Dies machst Du mit dem Modul CGI.pm; lies dazu
perldoc CGI
Vorgehensweise:
print "<body bgcolor='#E7F7FF'><font face='arial'>";
print "<center>";
print "Bitte achten sie auf das Format!<br>(hh:mm:ss oder hhh:mm:ss)";
[...]
Du möchtest Dich mit Here-Documents beschäftigen. Siehe
perldoc perldata ("here-doc")
Cheatah
Hallo
print " <tr>";
print "<td bgcolor='#E7F7FF'>$monat_name</td>";
print "<td bgcolor='#E7F7FF'><input type='text' name='$monat_name' value='$zeit' size='20'></td>";
print "</tr>";
print "<tr>";
print "<td bgcolor='#E7F7FF'></td>";
print "<td bgcolor='#E7F7FF'><input type='submit' value='Speichern' name='B1'></td>";
print "</tr>";
Mit diesem Teil gebe ich ja das ganze aus, und so hat jeder monat sein Feld mit dem Namen des Monats ($monat_name), aber wie übermittle das dem CGI?
Vorerst möchte ich lediglich die eingelesenen Daten im CGI ausgeben in einem ganz normal Print, danach kann ich dies dann immer noch vergleichen...
cu juha
Hi,
Mit diesem Teil gebe ich ja das ganze aus, und so hat jeder monat sein Feld mit dem Namen des Monats ($monat_name), aber wie übermittle das dem CGI?
möchtest Du nicht zunächst die Stelle der Dokumentation lesen, die ich Dir genannt habe?
Cheatah