Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] radio button w mailu
Forum PHP.pl > Forum > Przedszkole
-jarek-
Witam
Dopiero raczkuje w php i mam taki problem -chciałbym by w mailu wysyłanym do mnie mozna było wybrać jeden z przycisków radio - ale nie wiem dokladnie jak to zapisac
Poza tym plik nie waliduje czy są uzupełnione wszystkie pola - gdzies sie pogubiłem - może ktoś pomóc ?

<form method="post" action="wyslij.php" name="kontakt">
<div><li><label for="nick">Imię: </label><ul><input type="text" class="text" id="nick" name="nick" ></div>
<div><li><label for="temat">Temat: </label><ul><input type="text" name="temat" class="text" id="temat" ></div>
<div><li><label for="mail">Twój adres e-mail: </label><ul><input type="text" name="mail" class="text" id="mail" ></div>
<div><li><label for="mail">typ </label> <input type="radio" id="przycisk" name="przycisk" value="v1" checked="tak">a <br />
<div><li><label for="mail">typ2</label><input type="radio" id="przycisk" name="przycisk" value="v2" />b <br />

<div><ul><input type="submit" value="Wyślij" /></div>
</form>


PHP


<?php
if (!nick || !mail || !temat || !tresc)
{
echo "Nie uzupełniłeś wszystkich rubryk.";
exit;
}

$wiadomosc =
"Imie: ".$_POST['nick']."

e- mail: ".$_POST['mail']."

Tresc: ".$_POST['tresc']." ";
typ = $_POST['przycisk']." ";

$tematyka = "moj_temat- ".$temat;





mail ("jarek@mojmail.pl", $tematyka, $wiadomosc );
echo "Dziękujemy za wyslanie maila";

?>
sosus
Witam
sluchaj nie ma takich rzeczy w php jak "nick" to jest string.
Jezeli chesz sprawdzic czy pola zostaly wypelnione to sprawdz to tak:
wypelnij najpierw sobie zmienne np: $nick, kazda zmienna w php zaczyna sie od "$", doczytaj to sobie

$nick = $_POST['nick'];

wtedy mozesz zastosowac warunek

np:
if (!$nick)
{
echo "Nie uzupełniłeś wszystkich rubryk.";
exit;
}

ale to powoduje ze trzeba jeszcze raz wywolac skrypt aby wyslac mail ponownie po bledzie uzytkownika, co wiecej jezeli strona zostanie przeladowana, wpisane pola zostana wypelnione wartosciami poczatkowymi. Czyli klient bedzie musial wszystko wypelniac od poczatku, to nie dobrze bo moze kiedys tych pol bedzie wiecej.
Wiec uzyj sobie wstepnie js. Wiadomo ze nie kazdy ma wlaczone wykonywanie skryptow js (latwo znalesc jak to zrobic) w przegladarce wiec sprawdzanie na serwerze tez nie zawadzi,
ale ostatecznie oszczedzisz nerwow uzytkownikom, a to oni w sumie sa najazniejsi.

Drugi problem ktory tu widze to informacja po wyslaniu maila, jezeli ktos nacisnie F5 na stonie z komunikatem wyslij.php to wysle nastepnego maila lub pare, takich rzeczy
nalezy unikac wiec powinienes po wyslaniu przekierowac request na strone z samym komunikatem.

Dodatkowo na etapie pisania , polecam abys w skrypcie wyslij.php zobaczyl sobie taki zapis "var_dump($_REQUEST);" zobaczysz wtedy co zostalo przeslane na serwer,
wtedy zobaczysz co wysyla ci "radio".

poza tym skad wziąles $tematyka = "moj_temat- ".$temat; $temat : gdzie to wypelniasz? Musisz zrobic podobnie jak ze zmienna $nick np: $temat = $_REQUEST['temat'];

Na koniec warto jeszcze wspomniec o stronie kodowej, aby unknac krzakow , warto o to zadbac, odsylam cie do manuala i do wielu przykladow ktore mozna znalesc w necie w 5min.
pozdrawiam, mam nadzieje ze pomoglem
adam


-Jarek-
No częściowo pomogłes - ale co z ty radio buttonem - wiesz może jak to zrobić ?
sosus
"No częściowo pomogłes - ale co z ty radio buttonem - wiesz może jak to zrobić ?"

Chyba nie do konca cie rozumiem, kazdy radio ma value w twoim przypadku jest to v1 lub v2 po wybraniu i wyslaniu formularza
dostajesz w requiescie to co wybral uzytkownik, wiec w czym tu problem. specjalnie podalem ci jak to podejzec w var_dump($_REQUEST);
Wiec nad czym tu sie zastanawiac ?

pozdr
adam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.