Ulf: PHP/JS Problem beim Submit

Hallo zusammen, ich habe da ein Problem:

Ich muss immer 2x auf den Submit-Button klicken, bevor die Daten in die 2. Seite eingefügt werden.

<html>
<head>
<title>Beschaffungsformular</title>
<meta name="author" content="Ulf Wuestefeld">
<link rel="stylesheet" href="../service.css" type="text/css">
<script language="JavaScript">
function abschliessen_dis()
{
document.getElementById("Buttons").innerHTML = "<input type='Button' value='Abschließen' onClick='document.drucken.submit()' disabled>";
}
function senden()
{
document.zeile.submit();
}
function druck_vorb()
{
document.zeile.submit();
document.drucken.submit();
}
</script>
</head>
<body>
<?
if($HTTP_POST_VARS[lfdnr]=="")
{
$i=1;
}
else
{
if($HTTP_POST_VARS[bezeichnung]!="")
{
$i=1+$HTTP_POST_VARS[lfdnr];
}
else
{
$i=$HTTP_POST_VARS[lfdnr];
}
}
if($HTTP_POST_VARS[bezeichnung]!="")
{
if($HTTP_POST_VARS[gesamtstring]=="<tr><td></td><td></td><td></td><td></td><td>0</td></tr>")
{
list($mvorkomma,$mnachkomma)=split(",",$HTTP_POST_VARS[menge],2);
$menge="$mvorkomma.$mnachkomma";
$menge=(float)$menge;
list($pvorkomma,$pnachkomma)=split(",",$HTTP_POST_VARS[preisjeeinheit],2);
$preisjeeinheit="$pvorkomma.$pnachkomma";
$preisjeeinheit=(float)$preisjeeinheit;
$preis_ges=$menge*$preisjeeinheit;
$gesamtstring="<tr><td>$HTTP_POST_VARS[lfdnr]</td><td>$HTTP_POST_VARS[bezeichnung]</td><td>$HTTP_POST_VARS[menge]</td><td>$HTTP_POST_VARS[preisjeeinheit]</td><td>$preis_ges</td></tr>";
}
else
{
list($mvorkomma,$mnachkomma)=split(",",$HTTP_POST_VARS[menge],2);
$menge="$mvorkomma.$mnachkomma";
$menge=(float)$menge;
list($pvorkomma,$pnachkomma)=split(",",$HTTP_POST_VARS[preisjeeinheit],2);
$preisjeeinheit="$pvorkomma.$pnachkomma";
$preisjeeinheit=(float)$preisjeeinheit;
$preis_ges=$menge*$preisjeeinheit;
$gesamtstring="$HTTP_POST_VARS[gesamtstring]<tr><td>$HTTP_POST_VARS[lfdnr]</td><td>$HTTP_POST_VARS[bezeichnung]</td><td>$HTTP_POST_VARS[menge]</td><td>$HTTP_POST_VARS[preisjeeinheit]</td><td>$preis_ges</td></tr>";
}
}
else
{
$gesamtstring="$HTTP_POST_VARS[gesamtstring]";
}
if(($HTTP_POST_VARS[hauptgeraet]!="") AND ($HTTP_POST_VARS[gesamthg]!=""))
{
$gesamthg="$HTTP_POST_VARS[gesamthg]<tr><td>$HTTP_POST_VARS[lfdnr2]</td><td>$HTTP_POST_VARS[hauptgeraet]</td></tr>";
}
else
{
if($HTTP_POST_VARS[hauptgeraet]!="")
{
$gesamthg="<tr><td>$HTTP_POST_VARS[lfdnr2]</td><td>$HTTP_POST_VARS[hauptgeraet]</td></tr>";
}
else
{
$gesamthg="$HTTP_POST_VARS[gesamthg]";
}
}
echo "<form name='drucken' action='beschaffung_adv_dr.php' method='post' target='_blank'>";
echo "<input type=hidden name=gesamtstring value='$gesamtstring'>";
echo "<input type=hidden name=lieferfirma value='$HTTP_POST_VARS[lieferfirma]' size=100>";
echo "<input type=hidden name=liefertermin value='$HTTP_POST_VARS[liefertermin]' size=100>";
echo "<input type=hidden name=bestimmungsort value='$HTTP_POST_VARS[bestimmungsort]' size=100>";
echo "<input type=hidden name=zusatzgeraet value='$HTTP_POST_VARS[zusatzgeraet]'>";
echo "<input type=hidden name=notwendigkeit value='$HTTP_POST_VARS[notwendigkeit]' size=100>";
echo "<input type=hidden name=folgekosten value='$HTTP_POST_VARS[folgekosten]' size=100>";
echo "<input type=hidden name=raeumlichkeiten value='$HTTP_POST_VARS[raeumlichkeiten]' size=100>";
echo "<input type=hidden name=sonstangaben value='$HTTP_POST_VARS[sonstangaben]' size=100>";
echo "<input type=hidden name=gesamthg value='$gesamthg'>";
echo "</form>";

echo "<center>";

echo "<h1>ADV-Beschaffungsformular</h1>";
echo "<form name='zeile' action='beschaffung_adv.php' method='post'>";
echo "<input type=hidden name=gesamtstring value='$gesamtstring'>";
echo "<input type=hidden name=lieferfirma value='$HTTP_POST_VARS[lieferfirma]' size=100>";
echo "<input type=hidden name=liefertermin value='$HTTP_POST_VARS[liefertermin]' size=100>";
echo "<input type=hidden name=bestimmungsort value='$HTTP_POST_VARS[bestimmungsort]' size=100>";
echo "<input type=hidden name=zusatzgeraet value='$HTTP_POST_VARS[zusatzgeraet]'>";
echo "<input type=hidden name=notwendigkeit value='$HTTP_POST_VARS[notwendigkeit]' size=100>";
echo "<input type=hidden name=folgekosten value='$HTTP_POST_VARS[folgekosten]' size=100>";
echo "<input type=hidden name=raeumlichkeiten value='$HTTP_POST_VARS[raeumlichkeiten]' size=100>";
echo "<input type=hidden name=sonstangaben value='$HTTP_POST_VARS[sonstangaben]' size=100>";
echo "<input type=hidden name=gesamthg value='$gesamthg'>";
echo "<table width=80%>";
echo "<tr><td>Lfd<br>Nr.</td><td>Genaue Bezeichnung des Gegenstandes<br>bzw. der Leistung<br>";
echo "(ggf. Bestell-Nr. des vorgeschlagenen Lieferanten)</td><td>wirtschaftliche &<br>";
echo "benötigte<br>Menge</td><td colspan=2>veranschlagter Preis in €<br>(einschl. MWSt)</td></tr>";
echo "<tr><td></td><td></td><td></td><td>je Einheit</td></tr>";
echo "<tr><td><input type=text name=lfdnr size=2 maxlength=2 readonly value='$i'>";
echo "</td><td><input type=text name=bezeichnung size=50 maxlength=50 onChange='abschliessen_dis()'></td><td>";
echo "<input type=text name=menge size=4 maxlength=4></td><td><input type=text ";
echo "name=preisjeeinheit size=10 maxlength=10></td>";
echo "<tr><td colspan=4 align=center>";
echo "<input type='Button' value='Eintragen' onClick='senden()'>";
echo "</td></tr>";
echo "<tr><td colspan=4>";
echo "<br><b>Bisherige Bestell-Liste:</b>";
echo "<br><table width=100%>";
echo "<tr><td>Lfd<br>Nr.</td><td>Genaue Bezeichnung des Gegenstandes<br>bzw. der Leistung<br>";
echo "(ggf. Bestell-Nr. des vorgeschlagenen Lieferanten)</td><td>wirtschaftliche &<br>";
echo "benötigte<br>Menge</td><td colspan=2>veranschlagter Preis in €<br>(einschl. MWSt)</td></tr>";
echo "<tr><td></td><td></td><td></td><td>je Einheit</td><td>Gesamt</td></tr>";
echo "$gesamtstring</table><br>";
echo "</td></tr>";
echo "<tr><td colspan=4><b>vorgeschlagene Lieferfirma</b>(besondere Eläuterung, wenn nur ein bestimmter Lieferant in Frage kommt)<br><textarea name=lieferfirma rows=5 cols=50>$HTTP_POST_VARS[lieferfirma]</textarea></td></tr>";
echo "<tr><td colspan=4><b>Empfänger und Bestimmungsort</b>(genauer Aufstellungsort, ggf. Raum-Nr.)<br><textarea name=bestimmungsort rows=2 cols=50>$HTTP_POST_VARS[bestimmungsort]</textarea></td></tr>";
echo "<tr><td colspan=4><b>Einbauteile, Zusatzgeräte &nbsp&nbsp&nbsp&nbsp&nbsp";
echo "&nbsp&nbsp&nbsp</b><input type=radio name=zusatzgeraet value=nein checked>";
echo "nein<br><input type=radio name=zusatzgeraet value=ja>ja, zu<table><tr><td>lfd.Nr.</td>";
echo "<td>Bezeichnung des Hauptgeräts</td></tr>";
echo "<tr><td><input type=text name='lfdnr2' size=2></td>";
echo "<td><input type=text name='hauptgeraet' size=50 maxlength=50></td></tr></table></td></tr>";
echo "<tr><td colspan=4 align=center><input type='Button' value='Eintragen' onClick='senden()'>";
echo "</td></tr>";
echo "<tr><td colspan=4><br><b>Bisherige Einbauteile, Zusatzgeräte</b><table><tr><td>lfd.Nr.</td><td>Bezeichnung des Hauptgeräts</td></tr>$gesamthg</table></td></tr>";
echo "<tr><td colspan=4><b>Liefertermin/Lieferfrist</b> (auf einhaltbare Termine ist zu achten)<br><input type=text name=liefertermin maxlength=25 size=25 value='$HTTP_POST_VARS[liefertermin]'></td></tr>";
echo "<tr><td colspan=4><b><br>Bedarfsbegründung der berechtigten/antragstellenden MitarbeiterInnen<br><br>Notwendigkeit der Maßnahme</b>";
echo "<br><input type=text maxlength=100 size=100 name=notwendigkeit value='$HTTP_POST_VARS[notwendigkeit]'></input></td></tr>";
echo "<tr><td colspan=4><b><br>Angaben zu personellen und sächlichen Folgekosten</b>";
echo "<br><input type=text maxlength=100 size=100 name=folgekosten value='$HTTP_POST_VARS[folgekosten]'></td></tr>";
echo "<tr><td colspan=4><b><br>Angaben zu Räumlichkeiten und Installationen</b>";
echo "<br><input type=text maxlength=100 size=100 name=raeumlichkeiten value='$HTTP_POST_VARS[raeumlichkeiten]'></td></tr>";
echo "<tr><td colspan=4><b><br>sonstige Angaben</b><font size=-1>(u.a. Angaben, welche Stellen, Personen oder Dezernate beteiligt wurden)</font>";
echo "<br><input type=text maxlength=100 size=100 name=sonstangaben value='$HTTP_POST_VARS[sonstangaben]'></td></tr>";
echo "</form>";
echo "<tr><td colspan=4 ID=Buttons align=center>";
echo "<input type='Button' value='Abschließen' onClick='druck_vorb()'>";
echo "</td></tr>";
echo "</table>";
echo "</center>";
?>
</body>
</html>

Vielen Dank für eure Mithilfe!

Ulf

  1. Moin!

    Hallo zusammen, ich habe da ein Problem:

    Ich muss immer 2x auf den Submit-Button klicken, bevor die Daten in die 2. Seite eingefügt werden.

    Danke für diese Information. Wo ist die Frage?

    Ach ja: Quellcode ist gut und schön, aber deine Codewüste, in der man auf den ersten Blick absolut gar nichts sieht, ist doch schon ziemlich frech.

    Immerhin ist das Javascript leicht erkennbar:

    function abschliessen_dis()
    {
    document.getElementById("Buttons").innerHTML = "<input type='Button' value='Abschließen' onClick='document.drucken.submit()' disabled>";
    }
    function senden()
    {
    document.zeile.submit();
    }
    function druck_vorb()
    {
    document.zeile.submit();
    document.drucken.submit();
    }

    Zur Funktion druck_vorb() kann ich dir nur sagen, dass sie niemals funktionieren kann. Du kannst nur ein Formular zur Zeit abschicken. Dieses Abschicken regt in der Regel den Server an, eine neue Seite zu schicken, welche die aktuelle Seite (mit dem Formular und dem Javascript) ersetzt. Also ist gleich nach document.zeile.submit() Schluß in dieser Funktion.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. Sorry für die Codewüste.

      Als Anhang zu meinem vorherigen Post:
      Wie kann ich ein Formular an 2 Seiten schicken.
      Habe gehört es geht über JS aber ich habe nicht durchgeblickt.

      SORRY

      1. Moin!

        Als Anhang zu meinem vorherigen Post:
        Wie kann ich ein Formular an 2 Seiten schicken.

        Kannst du nicht.

        Habe gehört es geht über JS aber ich habe nicht durchgeblickt.

        Falsch gehört. Diese Problematik wurde im Archiv schon oft besprochen.

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      2. Wie kann ich ein Formular an 2 Seiten schicken.
        Habe gehört es geht über JS aber ich habe nicht durchgeblickt.

        Welche Gründe könnte man haben, um ein Formular an 2 Seiten zu schicken?
        Mach doch das was du auf den 2 Seiten machen wills alles auf einer Seite.

        Gruss
        Bethoven