• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[php] Formularfelder je nach auswahl einblenden und Prüfen?

~red~

New member
Hallo und ja ich komme von dieser Formulargeschichte net weg bzw nicht weiter.

Ich habe ein Formular welches so ausschaut.
Code:
<form action="auswerten2.php" method="post" class="formulartext">
	<table width="260" height="18">
	<tr height="18">
	<td width="100" height="18" class="formulartext">Vorname:*</td>
	<td width="160" height="18"><input style="width:140px;height:16px;" class="Formmail_input" type="text" name="Vorname" size="14" tabindex="1"></td>
	</tr>
	</table>
	<table width="260" height="18">
	<tr height="18">
	<td width="100" height="18" class="formulartext">Nachname:*</td>
	<td width="160" height="18"><input style="width:140px;height:16px;" class="Formmail_input" type="text" name="Nachname" size="14" tabindex="2"></td>
	</tr>
	</table>
	<table width="260" height="18">
	<tr height="26">
	<td width="100" height="26" class="formulartext">eMail:*</td>
	<td width="160" height="26"><input style="width:140px;height:16px;" class="Formmail_input" type="text" name="Email" size="14" tabindex="3"></td>
	</tr>
	</table>
	Der Versand erfolgt standardisiert per e-Mail oder Sie wählen einen anderen Kommunikationskanal.  <br>
	<strong><input type="radio" name="Kanal" value="radioValue" tabindex="4"> Faxversand    </strong><input type="radio" name="Kanal" value="radioValue" tabindex="6"> <strong>Postversand</strong><br>
							
<!-- Einblendung bei Faxauswahl -->
<table width="260" height="18">
<tr height="26">
<td width="100" height="26" class="formulartext">Ihre Faxnummer:</td>
<td width="160" height="26"><input style="width:140px;height:16px;" class="Formmail_input" type="text" name="Faxnr" size="14" tabindex="5"></td>
</tr></table>
<!-- Einblendung bei Faxauswahl Ende --><br>
							
<!-- Einblendung bei Postauswahl Anfang -->
<table width="260" height="52">
<tr height="18">
<td width="100" height="18" class="formulartext">Name / Firma:*</td>
<td width="160" height="18"><input style="width:140px;height:16px;" class="Formmail_input" type="text" name="Firma" size="14" tabindex="7"></td>
</tr>
<tr height="18">
<td width="100" height="18" class="formulartext">Strasse:*</td>
<td width="160" height="18"><input style="width:140px;height:16px;" class="Formmail_input" type="text" name="Strasse" size="14" tabindex="8"></td>
</tr>
<tr height="18">
<td width="100" height="18" class="formulartext">PLZ:* & Ort:*</td>
<td width="160" height="18"><input style="width:44px;height:16px;" class="Formmail_input" type="text" name="PLZ" size="6" tabindex="9"><input style="width:94px;height:18px;" class="Formmail_input" type="text" name="Ort" size="8" tabindex="10"></td>
</tr>
</table>
<!-- Einblendung bei Postauswahl Ende -->
	<table width="260">
	<tr height="26">
	<td width="100" height="26" class="formulartext"></td>
	<td width="160" height="26"><input name="Send" type="submit" class="btinput" value="Abschicken" tabindex="11"></td>
	</tr>
	</table>
	</form>

Aus Platzgründen mmöchte ich dass je nach Auswahl des Kommunikationskanals die benötigten Felder angezeigt werden und nur bei Auswahl von Faxversand zBsp. die Faxnummer Pflichtfeld ist.

In der Abfrage-Datei (abfrage2.php) wird momentan dieser code ausgeführt und funktioniert anscheinend auch. (Zumindes bekomme ich ne mail mit den Angaben)
Code:
<?php

$Empfaenger = "meinemail@mail.de";

if($_REQUEST['Send'])
{
   if(empty($_REQUEST['Vorname']) || empty($_REQUEST['Nachname']) || empty($_REQUEST['Email']))
   {
      echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
   }
   else
   {
   	if ($Email!="" && ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $Email))
			{
				echo "<p>eMail</p>";
				echo "<!--Email is ok -->\n";}
				else {
				echo "<p><b class=bad>eMail</b></p>";
				$counter++;}
				echo "<!--Email checked -->\n";
				}
      $Mailnachricht = "Ja,ich wünsche einen Eintrag in Ihren Presseverteiler: \n\n";
      while(list($Formularfeld, $Wert)=each($_REQUEST))
      {
         if($Formularfeld!="Send")
         {
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
         }
      }
      $Mailnachricht .= "\nDatum/Zeit: ";
      $Mailnachricht .= date("d.m.Y H:i:s");
      $Mailbetreff = "Ja ich will in den Verteiler: ";
      $Mailbetreff .= $_REQUEST['Betreff'];
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']);
      echo"Vielen Dank für Ihre eMail!";
   }
else
{
   echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"verteiler.php\">Seite</a>.";
}

?>
Wie muss den diese Radiobuttonauswahl dort eingefügt werden. Oder wer kann mir mit der sichtbarkeit und der damit verbundenen Prüfung der Felder helfen? Habe da keinen Plan da er mir momentan sogar eine mail schickt wenn nicht mal alle Felder ausgefüllt sind???

Thx 4 Help an jederman!
 
Hallo,

ich möchte ebenfalls Formularelemente dynamisch einblenden und habe ein Problem. Mein Beispiel beruht auf einem Script, das ich im Internet (ich glaube hier im Forum) gefunden habe. Leider habe ich das Problem, dass das dazugehörige Textfeld der ersten Selectbox verschwindet sobald eine Auswahl in der zweiten Selectbox getroffen wird. Kann jemand helfen?

<html>
<head>

<script type="text/javascript">

var stat = false;
function einblenden(id) {
if (stat) document.getElementById(stat).style.display = "none";
document.getElementById(id).style.display = "";
stat = id;
}

</script>

</head>

<body>

<form>
<select name="" onchange="einblenden(this[this.selectedIndex].value)">
<option value=""></option>
<option value="apfel">Apfel</option>
<option value="birne">Birne</option>
</select>
<p style="display:none" id="apfel"><input type="text" name="apfel"> Apfel</p>
<p style="display:none" id="birne"><input type="text" name="birne"> Birne</p>

<br />

<select name="" onchange="einblenden(this[this.selectedIndex].value)">
<option value=""></option>
<option value="tomate">Tomate</option>
<option value="gurke">Gurke</option>
</select>
<p style="display:none" id="tomate"><input type="text" name="tomate"> Tomate</p>
<p style="display:none" id="gurke"><input type="text" name="gurke"> Gurke</p>
</form>

</body>
</html>
 
Das Skript ist für so einen Einsatz einfach nicht gedacht (auch ist es nicht besonders toll, da es den Fall einer nicht existierenden ID nicht abfängt).
 
Das habe ich schon befürchtet. Leider kenne ich mich in JavaScript 0 (!) aus. Hast du eventuell eine Idee, wo ich ein passendes Beispielscript finden kann?
 
Zurück
Oben