Heinrich Krebs: Formulare absenden

Guten Tag,

ich habe ein vorgefertigtes PHP CGI dass ich nicht ändern kann und dass aus einem Formular Werte entgegennimmt und als eMail verschickt (wodurch das auch geht, wenn auf einem Rechner kein Mail-Account eingerichtet ist).

Ich wollte nun ein anderes Formular anlegen, dessen Eingaben mit Javascript verarbeiten und in die Felder des ursprünglichen Formulars schreiben, damit diese an das PHP weitergeleitet werden können. Es klappt aber nicht so ganz.

Der Code:
Für das Formular:
<form name="HiddenForm" action="./cgi-bin/send_form_mail.php.cgi" method="post">
<input type="text" name="r_email" value="SL@werwolf-live.de" >
<input type="text" name="form_type" value="std_form">
<input type="text" name="s_name"    value="" size="60" />
<input type="text" name="s_email"   value="" size="60" />
<input type="text" name="s_phone"   value="" size="60" />
<input type="text" name="s_subject" value="" size="60" />
<input type="text" name="s_message" value="" size="6000">
</form>
Die inputs möchte ich später auf 'hidden' setzen, zum Debug habe ich das aber noch gelassen.

Das zweite Formular beginnt so:
<form name="VisibleForm" onsubmit="return chkFormular()">
und enthält viele Textfelder.

Die Funktion schließlich:
function chkFormular()
{
  if (document.VisibleForm.s_name.value == "")
  {
 alert("Bitte Ihren Namen eingeben!");
 document.VisibleForm.s_name.value.focus();
 return false;
  }
  else
  {
 document.HiddenForm.s_name.value = document.VisibleForm.s_name.value;
  }

if (document.VisibleForm.s_email.value == "")
  {
 alert("Bitte Ihre eMail-Adresse eingeben!");
 document.VisibleForm.s_email.value.focus();
  return false;
  }
  if (document.VisibleForm.s_email.value.indexOf("@") == -1)
  {
    alert("Keine E-Mail-Adresse!");
    document.Formular.Mail.focus();
    return false;
  }
  else
  {
  document.HiddenForm.s_email.value = document.VisibleForm.s_email.value;
  }

if (document.VisibleForm.Wert1.value != "")
  {
    document.HiddenForm.s_message.value = document.VisibleForm.Wert1.value + " soll auf " + document.VisibleForm.soll1.value + " gesteigert werden. \n Start der Steigerung ist am " + document.VisibleForm.Start1.value + "und endet am " + document.VisibleForm.Ende1.value + ". \n Die Steigerung kostet " + document.VisibleForm.XP1.value + " XP. \n Bemerkung: " + document.VisibleForm.Bemerkung1.value;
  }

document.HiddenForm.submit();
}

Ich weiß, dass das Javascript ausgeführt wird, denn ich erhalte die Fehler, wenn ich Felder freigelassen habe. Das zweite Fomular wird aber scheinbar nicht ausgeführt, denn das PHP generiert keine eMail.

Kann es sein, dass ich bei dem
  document.HiddenForm.submit();
Aufruf etwas falsch mache?

Vielen Dank für die Mühe,
Gruß,
Heinrich Krebs

  1. Hi,

    Ich weiß, dass das Javascript ausgeführt wird, denn ich erhalte die Fehler, wenn ich Felder freigelassen habe. Das zweite Fomular wird aber scheinbar nicht ausgeführt,

    Das Woertchen "scheinbar" hat in einer Fehlersuche nichts verloren.

    denn das PHP generiert keine eMail.

    Nun, ob das Formular ueberhaupt abschickt wird, kannst du ja leicht ueberpruefen, in dem du es mal auf ein anderes PHP-Script zeigen laesst, welches nur die uebergebenen Parameter zur Konrolle ausgibt.

    MfG ChrisB

    1. Nun, ob das Formular ueberhaupt abschickt wird, kannst du ja leicht ueberpruefen, in dem du es mal auf ein anderes PHP-Script zeigen laesst, welches nur die uebergebenen Parameter zur Konrolle ausgibt.

      Kann ich leider nicht. Weil ich keine Ahnung von PHP habe. Wüsste nichtmal wie ich sie schreiben muss. Ich benutze die PHP Datei auch nur, weil sie vom Hosting-Anbieter bereitgestellt wird.

      Das PHP generiert aber eine Seite, die dann ja an Stelle der gerade angezeigten Seite auftauchen sollte. Da das nicht geschieht ist es denke ich eine faire Annahme, dass das PHP auch nicht ausgeführt wird.