• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Auswertung von Radiobuttons/Auswahlliste

Status
Für weitere Antworten geschlossen.

Baddii

Neues Mitglied
Tach.

Ich muss noch ein Formular schreiben, wo man per Radiobuttons auswählen kann, was man gerne nehmen möchte. Man sollte mehrere auswählen können. Wie das in HTML aussieht, weiß ich. Aber wie das in PHP aussehen soll, weiß ich nicht. Ich habe das bis jetzt nur so hinbekommen, dass (wenn alle Auswahloptionen den gleichen Namen haben und somit zu einer Gruppe gehören) ich eine ausgewählte Option übergeben kann. Aber wie geht, dass ich, ohne alles einzelnt zu prüfen, die Variablen mitgeben kann. (Wenn jemand dann eins nicht auswählt, dann kommt eine fehlermeldung, dass es die variable nicht gibt, weil sie ja leer ist.)

Zur Info: Die Daten werden per Mail weggeschickt!

Ich habe das schon mit einer Auswahlliste probiert, da krieg ichs aber auch nich hin.

Wenn ihr den Code braucht oder etwas unverständlich ist, dann sagt das!

mfg Baddii

PS: habe bei Google bis jetzt nix nützliches gefunden und hier bei der Board-Suche auch nicht.
 
Werbung:
radiobuttons sind doch dafür ausgelegt immer nur eine option der möglichen, gegebenen auszuwählen oÒ
in deinem falle, bei möglicher mehrfachauswahl, bräuchtest du checkboxen.

vielleicht doch einfach mal code posten (:
 
Code vom Formular (nur der Formular-Teil!):

Code:
<form method="post" name="buchung" action="senden.php">
            <table width="449" border="0" cellspacing="1" cellpadding="1">
              <tr>
                <td align="left" valign="top">
					<input name="Option" type="checkbox" value="Kennenlernen" />Déesse kennenlernen
					</td>
					<td>
					<input name="Option" type="checkbox" value="Fusspflege" />Fusspflege
					</td>
					</tr>
					<tr>
					<td>
					<input name="Option" type="checkbox" value="DekorativeKosmetik" />Dekorative Kosmetik
					</td>
					<td>
					<input name="Option" type="checkbox" value="Gesichtspflege" />Gesichtspflege
					</td>
					</tr>
					<tr>
					<td>
					<input name="Option" type="checkbox" value="BodyFit" />Body-Fit
					</td>
					<td>
					<input name="Option" type="checkbox" value="Herrenpflege" />Herrenpflege
					</td>
					</tr>
					<tr>
					<td>
					<input name="Option" type="checkbox" value="Handpflege" />Handpflege
					</td>
					<td>
					<input name="Option" type="checkbox" value="Nahrungsergaenzung" />Nahrungsergänzung
					</td>
					</tr>
					<tr>
					<td colspan="2">
					<input name="9" type="checkbox" value="Sonnenpflege" />Sonnenpflege
                </td>
              </tr>
              <tr>
                <td width="40%" align="left" valign="top">Datum:                  </td>
                <td width="60%" align="left" valign="top">
                  <input name="datum" type="text" class="form" size="30" />
                </td>
              </tr>
              <tr>
                <td width="40%" align="left" valign="top">Uhrzeit: </td>
                <td width="60%" align="left" valign="top">
                  <input name="uhrzeit" type="text" class="form" size="30" />
                </td>
              </tr>
			  <tr>
                <td width="40%" align="left" valign="top">Vorname:                  </td>
                <td width="60%" align="left" valign="top">
                  <input name="vorname" type="text" class="form" id="vorname" size="30" />
                </td>
              </tr>
              <tr>
                <td width="40%" align="left" valign="top">Nachname: </td>
                <td width="60%" align="left" valign="top">
                  <input name="nachname" type="text" class="form" id="nachname" size="30" />
                </td>
              </tr>
			  <tr>
                <td width="40%" align="left" valign="top">Email:                  </td>
                <td width="60%" align="left" valign="top">
                  <input name="email" type="text" class="form" id="email" size="30" />
                </td>
              </tr>
              <tr>
                <td width="40%" align="left" valign="top">PLZ u. Ort: </td>
                <td width="60%" align="left" valign="top">
                  <input name="plz" type="text" class="form" id="plz" size="5" />
                   <input name="ort" type="text" class="form" id="ort" size="24" /></td>
              </tr>
              <tr>
                <td width="40%" align="right" valign="top">
                  <input name="Senden" type="submit" id="Senden" value="Abschicken" />
                </td>
                <td width="60%" align="left" valign="top">
                  <input type="reset" name="Submit" value="Zur&uuml;cksetzen" />
                </td>
              </tr>
            </table>
</form>


Dann die Auswertung des Codes (die Werte der anderen Formularfelder krieg ich raus, aber nicht die Werte der Checkboxen (ja, habs eben schnell geändert)):
[php:1:c887901f80]
<?php
$betreff = "Kontaktformular Buchung";
$an = "[email protected]";
$von = "".$_POST['email']."";
$date = date("d.m.Y");

if($vorname == "" OR $nachname == "" OR $email == "" OR $uhrzeit == "" OR $datum == "" OR $plz == "" OR $ort == "") {
echo "Bitte f&uuml;llen Sie alles aus!
";
echo "Benutzen Sie die Zur&uuml;ck-Funktion Ihres Browsers!
";
} else {
$inhalt = "Name: $vorname $nachname\n
Email: $email\n
Wohnort: $plz $ort\n
Wann: $datum $uhrzeit\n
Ausgewählt wurde:
[Ausgewählte Sachen angeben]\n //hier soll die Auswertung der Checkboxen hin!
Abgeschickt am: $date\n";

mail ($an,$betreff,$inhalt,"From: ".$von);
echo "
Mail wurde erfolgreich abgeschickt!
";
echo "<a href=\"index.htm\">Zur Startseite</a>";
}
?>
[/php:1:c887901f80]

Habe es eben mit Arrays probiert, hat bei mir aber au nich hingehauen.
 
Werbung:
mhm, also wenn du allen checkboxen den namen 'option' zuweist, überschreiben sich die werte ja *g

wenn du ein array machen möchtest, muss der name im formular 'option[]' lauten und dann solltest du das auch mit ner schleife für deine mail ausgeben können.
wo genau lag dein problem mit dem array?
 
die hatten alle den namen Option[]. so, habe das dann mit $option in die Variable $inhalt geschrieben, er hat mir aber immer nur eins angezeigt, obwohl ich mehrere ausgewählt habe. kannst du mir dann sagen, wie ichs richtig machen muss?
 
ich hab grad mal bissel rumgespielt [wozu so ne mittagspause doch gut is (: ..]
und bei mir funzt das ganze *g

aaaaaaaaaaalso:
für's formular trägst du den namen 'option[]' wieder ein, damit wir das ganze in ein array schreiben können.

bei php siehts dann so aus (:
[php:1:f676467a81]<?php
$option[]=$_POST['option[]']; # ob oder wie das ohne $_POST funktioniert, weiss ich nicht
$cnt=count($option); #array elemente für die schleife zählen

for($i=0; $i<$cnt; $i++){
echo $option[$i]." ";
}
?>[/php:1:f676467a81]
 
Werbung:
kann ich dann das echo auch in $inhalt schreiben?

also, das würde dann wie folgt aussehen:

[php:1:92dee4aac8]
<?php
$betreff = "Kontaktformular Buchung";
$an = "[email protected]";
$von = "".$_POST['email']."";
$date = date("d.m.Y");

if($vorname == "" OR $nachname == "" OR $email == "" OR $uhrzeit == "" OR $datum == "" OR $plz == "" OR $ort == "") {
echo "Bitte f&uuml;llen Sie alles aus!
";
echo "Benutzen Sie die Zur&uuml;ck-Funktion Ihres Browsers!
";
} else {
$option[]=$_POST['option[]']; # ob oder wie das ohne $_POST funktioniert, weiss ich nicht
$cnt=count($option); #array elemente für die schleife zählen

for($i=0; $i<$cnt; $i++){
echo $option[$i]." ";

$inhalt = "
Name: $vorname $nachname\n
Email: $email\n
Wohnort: $plz $ort\n
Wann: $datum $uhrzeit\n
Ausgewählt wurde:
".$Option[$i]."\n
Abgeschickt am: $date\n";

mail ($an,$betreff,$inhalt,"From: ".$von);
echo "
Mail wurde erfolgreich abgeschickt!
";
echo "<a href=\"index.htm\">Zur Startseite</a>";
}
}
?>
[/php:1:92dee4aac8]


hab ich grad gemacht, aber dann werden 1. drei emails geschickt (soviele, wie ich sachen angeklickt habe) und 2. steht in keiner email, was angeklickt wurde^^ das steht dann nur bei senden.php als ergebnis bzw. als echo/ausgabe.

//edit: habe dann die for-schleife bis zur variablen $inhalt geschrieben, aber dann schreibt er das trotzdem nich in die mail...

[php:1:92dee4aac8]
<?php
$betreff = "Kontaktformular Buchung";
$an = "[email protected]";
$von = "".$_POST['email']."";
$date = date("d.m.Y");

if($vorname == "" OR $nachname == "" OR $email == "" OR $uhrzeit == "" OR $datum == "" OR $plz == "" OR $ort == "") {
echo "Bitte f&uuml;llen Sie alles aus!
";
echo "Benutzen Sie die Zur&uuml;ck-Funktion Ihres Browsers!
";
} else {
$option[]=$_POST['option[]']; # ob oder wie das ohne $_POST funktioniert, weiss ich nicht
$cnt=count($option); #array elemente für die schleife zählen

for($i=0; $i<$cnt; $i++){
echo $option[$i]." ";

$inhalt = "
Name: $vorname $nachname\n
Email: $email\n
Wohnort: $plz $ort\n
Wann: $datum $uhrzeit\n
Ausgewählt wurde:
".$Option[$i]."\n
Abgeschickt am: $date\n";
}
mail ($an,$betreff,$inhalt,"From: ".$von);
echo "
Mail wurde erfolgreich abgeschickt!
";
echo "<a href=\"index.htm\">Zur Startseite</a>";
}
?>
[/php:1:92dee4aac8]

//edit2: leerzeichen für php-interpreter entfernt
 
sry für doppelpost, aber aufs edit achtet nicht jeder bzw. wird nicht angezeigt...


ich hab das erste nochmal versucht und meine rechtschreibung korrigiert (ich hab option als Option geschrieben). Dann habe ich fünf Emails bekommen, von denen die ersten vier das gleiche drin stand (außer das, was ausgewählt wurde, hat sich immer geändert-> bsp: ich hab option 1, 2, 3 gewählt. in email 1 ist option 1, in e. 2 ist o. 2 und in e. 3 ist o. 3). in der fünten mail standen dann nur die eingegeben daten, ohne dem was ausgewählt wurde. gibts da eine möglichkeit, dass das alles in einer mail gesendet wird?
 
so wie du das gerade gemacht hast nicht *g
in deinem fall würde er für jede angewählte checkbox eine mail versenden, weil du die mailfunktion in der schleife stehen hast, und das wollen wir ja nicht, denk ich (;

ich würd einfach das array dann zu nem string wandeln mit implode()
dann brauch man auch die schleife nicht.

sieht dann so aus:

[php:1:027b077127]<?php
$betreff = "Kontaktformular Buchung";
$an = "[email protected]";
$von = "".$_POST['email']."";
$date = date("d.m.Y");

if($vorname == "" OR $nachname == "" OR $email == "" OR $uhrzeit == "" OR $datum == "" OR $plz == "" OR $ort == "") {
echo "Bitte f&uuml;llen Sie alles aus!
";
echo "Benutzen Sie die Zur&uuml;ck-Funktion Ihres Browsers!
";
} else {
$option[]=$_POST['option[]'];
$option=implode(", ",$option);

$inhalt = " Name: $vorname $nachname\n
Email: $email\n
Wohnort: $plz $ort\n
Wann: $datum $uhrzeit\n
Ausgewählt wurde:".$option."\n
Abgeschickt am: $date\n";

mail ($an,$betreff,$inhalt,"From: ".$von);
echo "
Mail wurde erfolgreich abgeschickt!
";
echo "<a href=\"index.htm\">Zur Startseite</a>";
}
?>[/php:1:027b077127]
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben