Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery][PHP] Walidacja formularza
BillyJr
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Witam, mam formularz w php z polami i przyciskami:
  1. <form method="post" action="../action.php" enctype="multipart/form-data" id="contactForm" >

Posiadam też skrypt korzystający z pluginu Validation jQuery:
  1. <script type="text/javascript">
  2. $().ready(function() {
  3. var validator = $("#contactForm").bind("invalid-form.validate", function() {
  4. $("#summary").html("Formularz zawiera błędy (" + validator.numberOfInvalids() + ").");
  5. }).validate({
  6. debug: true,
  7. errorElement: "em",
  8. errorContainer: $("#warning, #summary"),
  9. errorPlacement: function(error, element) {
  10. error.appendTo( element.parent("td").next("td") );
  11. },
  12. success: function(label) {
  13. label.text("ok!").addClass("success");
  14.  
  15. </script>

I sprawa jest taka: jeśli do deklaracji formularza dołączę id="contactForm". To skrypt jest uruchamiany i formularz się waliduje, ale nie wykonywana jest akcja action.php po wciśnięciu przycisku. Jeśli usunę wpis id="contactForm", to akcja jest wykonywana, ale nie ma walidacji. Jestem nowy w PHP, proszę o pomoc, jak temu zaradzić. Dzięki z góry.
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Przesyłasz pliki?

Pytanie drugie, czy podpinasz coś pod formularz pod submit, to musisz zwrócić true aby się wysłał.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
BillyJr
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Tak, docelowo chciałbym wysyłać pliki i w deklaracji widnieje enctype="multipart/form-data". Narazie formularz jest b. prosty, to 3 pola tekstowe i jedno textarea i 2 przyciski:
  1. <form method="post" action="../dev04/case.php" enctype="multipart/form-data" id="contactForm" >
  2. <table class="border" width="550" cellpadding="3" cellspacing="0">
  3. <tr>
  4. <th colspan="3" align="center">Formularz kontaktowy</th>
  5. </tr>
  6. <tr>
  7. <td colspan="3"><div style="height:5px;"></div></td>
  8. </tr>
  9. <tr>
  10. <td class="colone">Imię</td>
  11. <td class="coltwo">*</td>
  12. <td class="colthree"><input class="text" type="text" name="frmFirstname" style="width:98%;" /></td>
  13. <td class="colfour"></td>
  14. </tr>
  15. [...]
  16. <tr>
  17. <td class="colone" colspan="2">&nbsp;</td>
  18. <td class="colthree">
  19. <input type="submit" value="Wyślij" name="submit" class="submit-button"/>
  20. <input type="reset" value="Wyczyść" name="reset"/></td>
  21. <td class="colfour"></td>
  22. </tr>
  23. </table>
  24. </form>
Go to the top of the page
+Quote Post
shikamaru88
post
Post #4





Grupa: Zarejestrowani
Postów: 24
Pomógł: 8
Dołączył: 12.06.2011
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Bardzo fajny walidator jest w pakiecie JqueryTools http://flowplayer.org/tools/validator/index.html możesz skorzystać z tego. A co do Twojego skryptu to jeśli wkleiłeś go w fizycznej formie to on nie ma prawa zadziałać gdyż nie zamknąłeś klamer po akcji success. Wysypujący skrypt blokuje wysłanie formularza, dlatego po zdjęciu id się wysyła bo jquery go nie łapie.


--------------------
Null jest pusty lub nie jest obiektem - IE 6
Go to the top of the page
+Quote Post
cronik
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.01.2011

Ostrzeżenie: (0%)
-----


Masz gotowe rozwiązanie:

<form method="post" action="../dev04/case.php" enctype="multipart/form-data" >
<table class="border" width="550" cellpadding="3" cellspacing="0">
<tr>
<th colspan="3" align="center">Formularz kontaktowy</th>
</tr>
<tr>
<td colspan="3"><div style="height:5px;"></div></td>
</tr>
<tr>
<td class="colone">Imię</td>
<td class="coltwo">*</td>
<td class="colthree"><input class="text" type="text" name="frmFirstname" style="width:98%;" /></td>
<td class="colfour"></td>
</tr>
[...]
<tr>
<td class="colone" colspan="2"> </td>
<td class="colthree">
<input type="submit" value="Wyślij" name="submit" class="submit-button" id="contactForm" />
<input type="reset" value="Wyczyść" name="reset"/></td>
<td class="colfour"></td>
</tr>
</table>
</form>

Zwróc uwagę, że akcję walidacji uruchamiasz wciskając SUBMIT. Dopiero potem masz akcję ../case.php

Ten post edytował cronik 13.06.2011, 15:36:48
Go to the top of the page
+Quote Post
BillyJr
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 13.06.2011

Ostrzeżenie: (0%)
-----


Cytat(shikamaru88 @ 13.06.2011, 15:17:03 ) *
Bardzo fajny walidator jest w pakiecie JqueryTools http://flowplayer.org/tools/validator/index.html możesz skorzystać z tego.

Dzięki! Skorzystałem z niego i działa jak należy:) Dzięki jeszcze raz smile.gif
Cytat(shikamaru88 @ 13.06.2011, 15:17:03 ) *
A co do Twojego skryptu to jeśli wkleiłeś go w fizycznej formie to on nie ma prawa zadziałać gdyż nie zamknąłeś klamer po akcji success. Wysypujący skrypt blokuje wysłanie formularza, dlatego po zdjęciu id się wysyła bo jquery go nie łapie.

Skryptu nie wkleiłem w całości, klamry były zamknięte.
Cytat(cronik @ 13.06.2011, 16:36:08 ) *
Masz gotowe rozwiązanie:

Cronik, twoje rozwiązanie nie zadziałało, ale jak pisałem wyżej skorzystałem z innego walidatora i mam już to co chciałem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:17