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

Mehrfachauswahl

wolf-marcus

New member
Hallo, ich bin ganz neu hier und hab auch schon eine Frage...
ich habe jetzt schonzwei Tage gesucht und leider nichts gefunden.
Ich soll für einen Freund eine Internetseite mit einem Formular mit einer Mehrfachauswahlbox erstellen. Alles funktioniert und über echo bekomme ich z.B. auch 2 Werte angezeigt, aber in den MAils bekomme ich leider immer nur den letzten Wert angezeigt, oder wenn ich was verändere steht dann Array da.

Könnte mir da bitte jemand helfen??? Bin schon echt am verzweifeln.
Ich hab zur Sicherheit mal alles gepostet.

Hier mal die anfrage.php

PHP:
<html>
 <head>
  <title>Versicherungsanfrage (Antwort)</title>
   <style type="text/css">
   body, td{
   	font-family: Verdana, Arial;
   	font-size: 12px;
   }
   
   td{
   	background-color: #CEEFFF;
   }
   </style>
</head>
<body>

<h3 style="text-align: center;">Versicherungsanfrage (Antwort)</h3>

<table align="center" cellPadding=4 cellSpacing=4>
 <tr>
  <td>

<?php
  $timestamp = time();
  ?>

<?php
  $datum = date("d.m.Y",$timestamp);
  $uhrzeit = date("H:i",$timestamp);
  echo $datum," - ",$uhrzeit," Uhr";

  ?>

<?php
  $firma = @$_POST["firma"];
  $vorname = @$_POST["vorname"]; 
  $nachname = @$_POST["nachname"]; 
  $email = @$_POST["email"]; 
  $strasse = @$_POST["strasse"]; 
  $ort = @$_POST["ort"];
  $telefon = @$_POST["telefon"];
  $email = @$_POST["email"];
  $geschaefstversicherung = @$_POST["geschaefstversicherung"]; 
  $zusatzgv = @$_POST["zusatzgv"]; 
  $privatversicherung = @$_POST["privatversicherung"]; 
  $zusatzpv = @$_POST["zusatzpv"];
          
  # Betreffzeile der Email
  $betreff ="Versicherungsanfrage von Herrn/Frau $nachname am $datum um $uhrzeit";
   
  # Ihre E-Mail-Adresse: (kleber@its-kleber.de)
  $an ="ich@du.er";
  
  # Ihre Homepage-Adresse: ([url]http://www.test.de[/url])
  $url ="http://www.test.de";
  
  # Inhalt der Danke E-Mail:
  $inhalt ="   Sehr geehrte(r) Frau/Herr $vorname $nachname,\n   vielen Dank für Ihren Besuch bei $url.\n
  Wir haben folgende Daten für Ihre Anfrage von Ihnen erhalten:\n\n
  ===== Beginn Nachricht =====\n
  Firma: $firma\n
  Vorname: $vorname\n
  Name: $nachname\n
  Strasse: $strasse\n
  Wohnort: $ort\n
  Telefon: $telefon\n
  E-Mail: $email\n
  \n
  Geschäftsversicherung: $geschaefstversicherung\n
  mit folgenden Spezifikationen: $zusatzgv\n\n
  Privatversicherungen: $privatversicherung\n
  mit folgenden Spezifikationen: $zusatzpv\n\n
  ===== Ende Nachricht =====\n\n
  Wir werden uns umgehend bei Ihnen melden.\n
  Mit freundlichen Grüßen\n
  ihr Versicherungsmakler";
  
  # URL zur Startseite: (index/home.htm)
  $start ="startseite.htm";
  
  # Nachricht wird an Ihre E-Mailadresse gesendet.
  $text ="Hallo, Sie haben eine neue Versicherungsanfrage über $url von $vorname $nachname am $datum um $uhrzeit erhalten:\n\n
  ====\n
  Firma: $firma\n
  Vorname: $vorname\n
  Name: $nachname\n
  Strasse: $strasse\n
  Wohnort: $ort\n
  Telefon: $telefon\n
  E-Mail: $email\n\n
  Geschäftsversicherung: $geschaefstversicherung\n
  mit folgenden Spezifikationen: $zusatzgv\n\n
  Privatversicherungen: $privatversicherung\n
  mit folgenden Spezifikationen: $zusatzpv\n\n
  ====\n\n
  Sie können $vorname $nachname unter '$email' oder unter '$telefon' erreichen.";

  # E-Mails senden.
      @mail($an,$betreff,$text,"From: ".$email);
      @mail($email,"Bestätigung",$inhalt,"From: ".$an);

  # Ausgabe der Bestätigung.
      echo("<p><b>Ihre Nachricht wurde erfolgreich an $an gesendet!</b></p>");
      echo("<p><b>Sie erhalten noch eine Bestätigungsmail!</b></p>");
      echo("<p> » <a href='$start' title='Zurück'>Zurück zur Startseite</a></p>");

?>

  </td>
 </tr>
</table>

</body>
</html>



Und hier die dazugehörige anfrage.htm Datei

PHP:
<html>
 <head>
 <title>Versicherungsanfrage</title>

<script languange="Javascript">

function eingaben_ueberpruefen(){
 if (document.eingabe.vorname.value == ""){
  alert("Sie haben noch keinen Vornamen eingegeben!")
  document.eingabe.vorname.focus();
  return false;
 }

 else if (document.eingabe.nachname.value == ""){
  alert("Bitte geben Sie Ihren Nachnamen ein")
  document.eingabe.nachname.focus();
  return false;
 }

 else if (document.eingabe.strasse.value == ""){
  alert("Bitte geben Sie Ihre Straße mit Hausnummer ein!")
  document.eingabe.strasse.focus();
  return false;
 }

 else if (document.eingabe.ort.value == ""){
  alert("Bitte geben Sie Ihren Wohnort ein!")
  document.eingabe.ort.focus();
  return false;
 }

 else if (document.eingabe.telefon.value == ""){
  alert("Bitte geben Sie Ihre Rückrufnummer ein!")
  document.eingabe.telefon.focus();
  return false;
 }

 else if (document.eingabe.email.value == ""){
  alert("Bitte geben Sie Ihre E-mail-Adresse ein!")
  document.eingabe.email.focus();
  return false;
 }

 else if (document.eingabe.email.value.indexOf ('@',0) == -1 || document.eingabe.email.value.indexOf ('.',0) == -1){
  alert("Bitte geben Sie eine gültige e-mail-Adresse ein.\n\nAlso: [email]name@xyz.de[/email]")
  document.eingabe.email.select();
  document.eingabe.email.focus();
  return false;
 }
 else
 return true;
}
</script>

<style type="text/css">
body, td{
	font-family: Verdana, Arial;
	font-size: 12px;
}

td{
	background-color: #cccccc;
}
</style>
 </head>
<body>

<form name="eingabe" method="POST" action="anfrage.php" onSubmit="return eingaben_ueberpruefen(this.form)">

<div align="center">

<table cellSpacing="1" width="712">
 <tbody>
 <tr>
  <td colspan="2">
<p align="center"><font color="#494B4C"><br />
Sehr geehrter Besucher und Interessent,</font></p>
<p align="center"><font color="#494B4C">wenn bei Ihnen an nachfolgenden 
Versicherungen Interesse besteht, oder bei Ihnen Veränderungen anstehen, dann können 
Sie hier schon vorab eine kleine Auswahl Ihrer Fragen 
an uns richten. Wir bereiten für Sie gerne schon die dementsprechenden Unterlagen vor, 
welche wir Ihnen in einem persönlichem Gespräch erläutern. <br />
<br />
Je mehr Informationen 
Sie uns hier geben, desto detaillierter können wir für Sie schon in Vorleistung 
gehen.<br />
 </font></p></td>
 </tr>
 <tr>
  <td align="center" width="352">
   <font color="#494B4C">
   <b>Firma</b></font></td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="text" name="firma" maxlength="50" size="30" /></font></td>
 </tr>
 <tr>
  <td align="center" width="352">
   <font color="#494B4C">
   <b>Vorname</b></font></td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="text" name="vorname" maxlength="50" size="30" />
  </font>
  </td>
 </tr>
 <tr>
  <td align="center" width="352">
   <font color="#494B4C">
   <b>Nachname </b>
  	</font>
  </td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="text" name="nachname" maxlength="50" size="30" />
  </font>
  </td>
 </tr>
 <tr>
  <td align="center" width="352">
   <font color="#494B4C">
   <b>Straße, Nr.</b></font></td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="text" name="strasse" maxlength="50" size="30" />
   </font>
   </td>
 </tr>
 <tr>
  <td align="center" width="352">
   <font color="#494B4C">
   <b>PLZ, Ort</b></font></td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="text" name="ort" maxlength="50" size="30" />
   </font>
   </td>
 </tr>
 <tr>
  <td align="center" width="352">
   <font color="#494B4C">
   <b>Telefon</b></font></td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="text" name="telefon" maxlength="50" size="30" />
   </font>
   </td>
 </tr>
  <tr>
  <td align="center" width="352">
   <font color="#494B4C">
   <b>E-Mail</b></font></td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="text" name="email" maxlength="60" size="30" />
  </font>
  </td>
 </tr>
 
 <tr>
  <td align="center" colspan="2">
    </td>
 </tr>
 <tr>
  <td align="center">
   <font color="#494B4C">
   <b>Geschäftliche Versicherungen<br />
	</b><font size="1">(eine Mehrfachauswahl ist möglich)</font></font></td>
  <td align="center" width="353">
   <font style="FONT-SIZE: 9pt" color="#494b4c" face="Georgia">hier bitte 
	Hinweise und Spezifikationen eintragen<br />
	(bitte stichwortartig nennen)</font></td>
 </tr>
 <tr>
  <td align="center" height="83">
   <font color="#494B4C">
 
 <form name="form1" method="post" action="<?php echo $PHP_SELF ?>">

 <select name="geschaefstversicherung[]" size="9" multiple="">
   	<option value="gvs1">Geschäftsinhaltsversicherung</option>
	<option value="gvs2">Betriebshaftpflichtversicherung</option>
	<option value="gvs3">Elektronikversicherung</option>
	<option value="gvs4">Rechtschutzversicherung</option>
	<option value="gvs5">Maschinenversicherung</option>
	<option value="gvs6" >Kfz-Versicherung(en)</option>
	<option value="gvs7">Kreditversicherung</option>
	<option value="gvs8">Transportversicherung</option>
	<option value="gvs9">Gebäudeversicherung</option>
   </select></font></td>
  <td align="center" height="83" width="353">
   <font color="#494B4C">
   <textarea name="zusatzgv" cols="28" rows="9"></textarea></font></td>
  </tr>
 <tr>
  <td align="center">
    </td>
  <td align="center" width="353">
    </td>
 </tr>
 <tr>
  <td align="center">
   <font color="#494B4C">
   <b>Privat Versicherungen<br />
	</b><font size="1">(eine Mehrfachauswahl ist möglich)</font></font></td>
  <td align="center" width="353">
   <font style="FONT-SIZE: 9pt" color="#494b4c" face="Georgia">hier bitte 
	Hinweise und Spezifikationen eintragen<br />
	(bitte stichwortartig nennen)</font></td>
 </tr>
 <tr>
  <td align="center">
   <font color="#494B4C">
   <select size="9" name="privatversicherung[]" multiple="multiple">
   	<option>Private Altersvorsorge</option>
	<option>Berufsunfähigkeitsversicherung</option>
	<option>Private Krankenversicherung</option>
	<option>Betriebliche Altersversorgung</option>
	<option>Rechtschutzversicherung</option>
	<option>Kfz-Versicherung</option>
	<option>Hausratversicherung</option>
	<option>Privathaftpflichtversicherung</option>
	<option>Unfallversicherung</option>
	</select></font></td>
  <td align="center" width="353">
   <font color="#494B4C">
   <textarea name="zusatzpv" cols="28" rows="9"></textarea></font></td>
 </tr>
 <tr>
  <td align="center" colspan="2">
    </td>
 </tr>
 <tr>
  <td align="center" colspan="2">
    </td>
 </tr>
 <tr>
  <td align="center">
   <font color="#494B4C">
   <input type="reset" /> 
  </font>
  </td>
  <td align="center" width="353">
   <font color="#494B4C">
   <input type="submit" /></font></td>
 </tr>
</tbody>
</table>

</div>

</form>

</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
lol, und du erwartest jetzt, dass wir deinen ganzen Code durchwühlen um die richtige Stelle zu finden? Wenn du das selbst programmiert hättest würdest du den Fehler bestimmt auch selbst finden...

btw. sieht der Code zimelich mies aus...
 
ok, sorry für den langen String. Hier also nochmal eine Kurzfassung wo ich denke das der Fehler ist, den ich nicht finde...

Auszug aus Anfrage.htm
<select name="geschaefstversicherung[]" size="9" multiple="">
<option value="gvs1">Geschäftsinhaltsversicherung</option>
<option value="gvs2">Betriebshaftpflichtversicherung</option>
<option value="gvs3">Elektronikversicherung</option>
<option value="gvs4">Rechtschutzversicherung</option>

Auszug aus Anfrage.php
<?php
$geschaefstversicherung = @$_POST["geschaefstversicherung"];
$inhalt ="Geschäftsversicherung: $geschaefstversicherung\n


# E-Mails senden.
@mail($an,$betreff,$text,"From: ".$email);
@mail($email,"Bestätigung",$inhalt,"From: ".$an);


In der Mail bekomme ich unter Geschäftsversicherung: nur Array angezeigt.

Wie kann ich aber das Array aufschlüsseln, so das mir entweder zwei oder 3 der ausgewählten Versicherungen angezeigt werden?

Vielen Dank schonmal
 
Es geht um die Funktion und nicht um die Beispiele. Ansonsten mit einer for-Schleife über dein Array laufen und den String manuel zusammenbauen. Implode macht ja auch nichts anderes.
 
aber ich habs jetzt hinbekommen, ein anderes Forum hat mir da mal schnell unter die Arme gegriffen.
Der Fehler war in der php Datei:

statt:
<?php
$geschaefstversicherung = @$_POST["geschaefstversicherung"];
$inhalt ="Geschäftsversicherung: $geschaefstversicherung\n

muss da folgendes stehen:
$geschaefstversicherung = $_REQUEST["geschaefstversicherung"];
$inhalt ="Geschäftsversicherung: ".implode(",",$geschaefstversicherung)."\n";

das hat vollkommen ausgereicht und nun funktioniert es.
Ich habs hier veröffentlicht, falls das Problem auch noch andere haben.

Grüße, Marcus
 
1. X-Posting wird nicht gerne gesehen - zu Recht.
2. Das ist genau die Lösung, die ZeitGeist vorgeschlagen hat!
 
Zurück
Oben