Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Formularz kontaktowy i weryfikacja
Forum PHP.pl > Forum > Przedszkole
mateopl
Witam
Mam problem ze zrobieniem weryfikacji poprawnosci wypelnienia pol formularza. Mam podstawowy skrypt ktory to sprawdza lecz chcialbym go przerobic dla kilku pol oddzielnie i zeby dzialal na innej zasadzie..


Mam dwa rozne pytania w formularzu o takich samych odpowiedziach, nie wiem w jaki sposob zrobic cos takiego by w przypadku nie wybrania zadnej odp z obu pytan weryfikacja zatrzymala skrypt i pojawil sie komunikat aby podac choc jedna odp obojetnie z ktorego pyt.. jesli natomiast bedzie podana 1 odp z ktoregokolwiek pyt skypt sie wykonuje dalej i mail zostanie wyslany...
Ponizej podaje przyklad pyt form i metode weryfikacji wypelnionych pol:


Formularz - pytania
  1. <div class="slowa"><b>Jak się dowiedziałeś o mnie?</b></div>
  2.   <table width="400" border="0" cellspacing="0" cellpadding="0">
  3.   <tr>
  4.   <td width="200"><div class="slowa">Internet</div></td>
  5.   <td width="200" align="left">
  6.   <select name="internet1" class="pole" size="1">
  7.   <option></option>
  8.   <option value="Google" selected="selected">Google</option>
  9.   <option value="Yahoo">Yahoo</option>
  10.   <option value="MSN">MSN</option>
  11.   <option value="Inna wyszukiwarka">Inna wyszukiwarka</option>
  12.   <option value="Inna strona">Inna strona</option>
  13.   </select>
  14.   </div> </td>
  15.   </tr>
  16.   <tr>
  17.   <td><div class="slowa">Czasopismo</div></td>
  18.   <td align="left">
  19.   <select name="czasopismo1" class="pole" size=\"1\">
  20.   <option></option>
  21.   <option value="Gazeta 1">Gazeta 1</option>
  22.   <option value="Gazeta 2">Gazeta 2</option>
  23.   <option value="Gazeta 3">Gazeta 3</option>
  24.   <option value="Gazeta 4">Gazeta 4</option>
  25.   </select>
  26.   </td>
  27.   </tr>
  28.   <tr>
  29.   <td><div class="slowa">Od znajomego</div></td>
  30.   <td align="left">
  31.   <input name="znajomy1" type="text" class="pole"size="35" /> </td>
  32.   </tr>
  33.   <tr>
  34.   <td><div class="slowa">Inne</div></td>
  35.   <td align="left">
  36.   <input name="inne1" type="text" class="pole" size="35" /> </td>
  37.   </tr>
  38.   </table>
  39.   <br />
  40.  
  41.   <div class="slowa"><b>Jak się dowiedziałeś o nas?</b></div>
  42.   <table width="400" border="0" cellspacing="0" cellpadding="0">
  43.   <tr>
  44.   <td width="200"><div class="slowa">Internet</div></td>
  45.   <td width="200" align="left">
  46.   <select name="internet2" class="pole" size="1">
  47.   <option></option>
  48.   <option value="Google" selected="selected">Google</option>
  49.   <option value="Yahoo">Yahoo</option>
  50.   <option value="MSN">MSN</option>
  51.   <option value="Inna wyszukiwarka">Inna wyszukiwarka</option>
  52.   <option value="Inna strona">Inna strona</option>
  53.   </select> </td>
  54.   </tr>
  55.   <tr>
  56.   <td><div class="slowa">Czasopismo</div></td>
  57.   <td align="left">
  58.   <select name="czasopismo2" class="pole" size="1">
  59.   <option></option>
  60.   <option value="Gazeta 1">Gazeta 1</option>
  61.   <option value="Gazeta 2">Gazeta 2</option>
  62.   <option value="Gazeta 3">Gazeta 3</option>
  63.   <option value="Gazeta 4">Gazeta 4</option>
  64.   </select> </td>
  65.   </tr>
  66.   <tr>
  67.   <td><div class="slowa">Od znajomego</div></td>
  68.   <td align="left">
  69.   <input name="znajomy2" type="text" class="pole" size="35" /> </td>
  70.   </tr>
  71.   <tr>
  72.   <td><div class="slowa">Inne</div></td>
  73.   <td align="left">
  74.   <input name="inne2" type="text" class="pole" size="35" /> </td>
  75.   </tr>
  76.   </table>


Weryfikacja pol - sprawdzenie czy sa wypelnione czy nie
  1. <?php
  2.  echo "<script type=\"text/javascript\">\n";
  3.     echo "<!--\n";
  4.     echo "function validar(form1) {\n";
  5.  echo "if (form1.jakies_pole_formularza.value.length < 2) {\n";
  6.       echo "alert('";
  7.       echo "Wypelnij to pole";
  8.       echo "');\n";
  9.       echo "form1.jakies_pole_formularza.focus();";
  10.       echo "return (false);}\n";
  11. ?>


Bardzo prosze o pomoc
Z gory dziekuje za wszystkie odp
Misiur66
Nie rozumiem jednego: Po co używasz echo() dla czystego skryptu JS? Nie możesz go wstawić w pliku HTML?
mateopl
To nie jest moj skypt znalazlem go w sieci.. Dziala dobrze tylko chcialbym go jakos przerobic cos dopisac by wykonywal akurat takie sprawdzanie pol jak podalem w przykladzie..
Misiur66
Czyli tak naprawdę wygląda tak:

Kod
<script type="text/javascript">
<!--
function validar(form1) {
if (form1.jakies_pole_formularza.value.length < 2) {
alert('Wypelnij to pole');
form1.jakies_pole_formularza.focus();
return (false);
}


Ok, zasadnicze pytanie. Chcesz to zrobić w JS, czy w PHP?
mateopl
tak zeby to dzialalo:) Powiem jeszcze ze oprocz tych pol sa tam inne ktore chce pozostawic w tej technice co podalem w przykladzie.. bo wszystko dobrze dziala...
Misiur66
Hehe, bo wiesz, tu jest JS zapisany w pliku PHP... A to jest głupota. Zaraz to sobie w JS zrobię (będzie dużo bardziej dynamiczne), ale komputery z wyłączonym JS będą się musiały obejść smakiem.

EDIT:

Jeżeli możesz to daj cały plik index.html czy taj jak go masz, bo nie wiem czy nawet masz nazwę formularza dobrą ;P
mateopl
Caly formularz jest bardzo dlugi i chyba na forum nie za bardzo bo podawac.. wszystko dziala w nim dobrze tylko chodzi mi o przerobienie tego kawalka skryptu weryfikacji... moze byc php moze byc taki jak jest aby robil to co chce:)
Misiur66
Hmm... napiszę ładny i zgodny z W3C JS-owy skrypt. Ale mimo wszystko chciałbym przynajmniej wiedzieć jak się nazywa formularz biggrin.gif I wytłumacz mi dokładnie co chcesz uzyskać tym formularzem. Zapewne sposób w jaki ktoś się dowiedział o twojej stronie? I co najmniej jedno ma zostać wypełnione?

AAA, już wiem, wstawiłem to sobie w edytorze i w podglądzie się zorientowałem biggrin.gif Czyli albo się dowiedziałem o tobie, albo o nas.

Edit:

Mimo wszystko najlepiej by było zrobić dwa całkiem oddzielne formularze... Bo tak to nie ma sensu. Co do nazwy to chodzi o <form name="nazwaformularza" action="..." method="..."> Więc lepiej zrobić dwa formularza o jednym atrybucie action, przy method = Get. Wtedy wystarczy w pliku php wpisać
Kod
if(isset($_GET['przycisk_submit_form_1']){ echo('Pierwszy form')};
elseif(isset($_GET['przycisk_submit_form_2']){ echo('Drugi form')};
mateopl
Dokladnie tak jak napisales. Formularz nazywa sie form1. Nie wiem o co dokladnie Ci chodzi tzn o jaka nazwe...?

Tak. Ale jesli ktos wybierze np kikla odp z tych obu pytan to form jest OK i mail przechodzi... Jesli natomiast nie wybierze ani jednej odp obojetnie z ktorego pyt to error...

A wiesz moze w jaki sposob zrobic taki efekt podswietlenia (obramowania np kolorem czerwonym) danego pola z form w ktorym ktos nie podal odp.. w tym moim skrypcie weryfikacji jesli wyskowy komunikat o niewypelnieniu danego pola po kliknieciu OK w komunikacie automatycznie kursor zabiera mnie do tego niewypelnionego pola a ja chcialbym jeszcze je w jakis sposob podswietlic oprocz tego zaznaczenia kursora.. Wiesz jak takie cos mozna zrobic..?
Misiur66
Oczywiście! Wejdź na http://misiur.cal.pl i zobacz rejestracje (mam tablicę php i się wyświetla na końcu.)

Co do tego kursora to niestety biggrin.gif Ale pokazuje się ramka z ostrzeżeniem.

Hm... powinno się w JS zmienić style. Zaraz ci podam kurs z którego się uczyłem.

Edit:

Proszę, tutaj masz taki fragment o tym zmienianiu w JS:

http://ferrante.pl/2007/03/17/praktyczne-w...-javascript-10/
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.