Du måste sätta mailadressen som value också.
red.
alltså
echo "<option ".$selected." value=\"".$adress[$i]."\">";
7 svar · 639 visningar · startad av mathias5
Har gjort detta kontaktformulär nu ikväll men den man väljer i rullgardinen får inget mail tyvärr.. Någon som kan se vad det beror på? I min array har jag nu endast emailadresser, det vore såklart snyggare med namn som i sin tur är kopplade till en egen emailadress.. Hjälp med dessa två problem önskas!
KOD
<form action="<?php echo $PHP_SELF ?>" method="post">
Till<br />
<select name="valjmail" class="form">
<?php
$adress = array ("mailadress1","mailadress2","mailadress3");
sort ($adress);
for ($i = 0; $i < 3; $i = $i + 1) { // 3 = antalet personer
if ($_REQUEST['valj']==$adress[$i]){
$selected = "selected='selected'";
}else{
$selected = "";
}
echo "<option ".$selected.">";
echo $adress[$i];
echo "</option>";
}
?>
</select><br />
Namn<br />
<input name="namn" class="form" id="namn" size="30"/><br />
E-postadress<br />
<input name="epost" class="form" id="epost" size="30"/><br />
Meddelande<br />
<textarea name="meddelande" class="form" cols="34" rows="7" id="meddelande"></textarea><br /><br />
<input name="send" class="form" id="send" type="submit" value="Skicka" />
<input name="reset" class="form" id="reset" type="reset" value="Ångra" />
</form>
<?php
if (@$_REQUEST['send']!=""){
$namn = $_POST['namn'];
$email = $_POST['epost'];
$meddelande = $_POST['meddelande'];
$tackformail = "Tack för ditt mail! Jag svarar så fort jag kan.";
$amne = "Mantorp xdream";
$ok = "ja";
if($namn == ""){
echo "Du måste ange ditt namn!<br />";
$ok = "nej";
}
if($email == ""){
echo "Du måste ange din e-postadress!<br />";
$ok = "nej";
}
if($meddelande == ""){
echo "Du måste skriva ett meddelande!";
$ok = "nej";
}
if ($ok == "ja"){
$msg = ereg_replace("\\\'", "'", $meddelande);
mail($adress[$i], $amne, $meddelande, "From: $email\r\nReply-to: $email\r\n");
echo $tackformail;
}
}
?>
Du måste sätta mailadressen som value också.
red.
alltså
echo "<option ".$selected." value=\"".$adress[$i]."\">";
Tack!
Men fortfarande kommer inga mail fram.. : /
Din select heter ju valjmail men i mail() funktionen har du adress[$i]
ändra till $_POST['valjmail']
Om det ändå inte funkar testa att skriva ut värdena i variablerna för att se vad dom innehåller.
Sådär ja! Tack ska du ha! :)
Nästa problem är nu att få ut namn istället för epostadresser och när man väljer ett specifikt namn t.ex martin så ska mailet skickas till hans emailadress. Hur görs detta bäst? Jag har provat lite med tvådimensionella arrayer men inte fått det resultat jag vill..:)
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
Till<br />
<select name="valjmail" class="form">
<?php
$adress = array ("namn1" => "mailadress1",
"namn2" => "mailadress2",
"namn3" => "mailadress3")
sort ($adress);
foreach ($adress as $namn => $mail) {
if ($_POST['valj']==$namn) { //Utnyttja: Vet att formuläret skickas med POST
$selected = "selected='selected'";
}
else {
$selected = "";
}
echo "<option value ="$name" ".$selected.">$name</option>";
}
?>
</select><br />
<!--- mera forminfo --->
<?php
if (@$_POST['send']!="") { //Um... Vad har @ här att göra?
// En massa kod
$toNamn = $_POST['valjmail'];
$toEpost = $adress[$toNamn]
mail($toEpost, $amne, $meddelande, "From: $email\r\nReply-to: $email\r\n");
// mera kod