Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mintAjax] Walidacja danych z formularza, Problem...
iMax
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 4.07.2006

Ostrzeżenie: (10%)
X----


Witam. Zaczynam przygoda z AJAXEM a konkretnie mintAjaxem, i mam pewien problem.
Postanowilem sobie zrobic walidacje wybranych pol w formularzu. Uzylem onChange, czyli gdy uzytkownik wpisze cos, a bedzie to zle to wyswietli sie blad nad formuarzem w divie.

js
  1. <?php
  2. function check_profile(pole, div)
  3. { req = mint.Request();
  4.  req.method = "post";
  5.  req.AddParam(pole, $(pole).value);
  6.  req.OnSuccess = function ()
  7.  { 
  8.  document.getElementById(div).innerHTML = req.responseText;
  9.  }
  10.  req.Send("profile.php?action=save");
  11. }
  12. ?>


html (jeszcze ze smartami)
  1. <form action="profile.php?action=save" method="post" name="form" id="form">
  2. <div class="page_content">
  3. <div class="page_title">Edycja profilu</div>
  4. <div class="edit_profile">
  5. {foreach from=$profile item=pr}
  6. <div class="section">Strona</div>
  7. <table width="100%" cellpadding="1" cellspacing="2">
  8. <tr>
  9. <td width="38%">Email:</td>
  10. <td width="62%">
  11. <div id="c_email"></div>
  12. <input name="email" type="text" id="email" value="{$pr.email}" size="22" maxlength="60" onChange="check_profile('email', 'c_email')" />
  13. </label>
  14. <div id="c_email_e"></div></td>
  15. </tr>
  16. <tr>
  17. <td>Nowe hasło:</td>
  18. <td>
  19. <div id="c_pass"></div>
  20. <input name="pass1" type="password" id="pass1" size="22" maxlength="50" onChange="check_profile('pass1', 'c_pass')"/>
  21. </label></td>
  22. </tr>
  23. <tr>
  24. <td>Powtórz hasło:</td>
  25. <td><input name="pass2" type="password" id="pass2" size="22" maxlength="50" onChange="check_profile('pass2', 'c_pass')"/></td>
  26. </tr>
  27. </table>
  28. ........


Niestety nie mam teraz dostepu do pliku php, ale jest on na 100%, bo bez ajaxa dzialal jak nalezy. Sprawdza na zasadzie if(cos tam zle) echo blad.
A wogole caly problem tkwi w tym, ze czy wypelnie pole email czy nie, to zawsze gdy zejde nizej i wypelnie hasla i zgadzaja sie ze soba to w divie od bledow z hasel wyskakuje moj blad: "Nie podano emaila" (sprawdza na zasadzie if(!isset($_POST['email'])) echo Nie podano emaila), chodz ten blad nie ma nic wspolnego z haslami (tak samo jest jak podam inne pola). W js przesylam tylko pole, wiec na moj chlopski rozum w skrypcie php powinno sie wykonac to gdzie jest $_POST['...'], a wiec skad tam inne pole. Jak na moje oko to wina js. Jesli tak, to jak go zmodyfikowac, zeby sprawdzal tylko w php gdzie jest bezposrednie odwolanie do danego pola.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
klocu
post
Post #2





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

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


Cytat(vokiel @ 30.07.2008, 14:14:21 ) *
1. sprawdzasz czy pole jest puste (czysty js). jesli jest to nawet nie validujesz ajaxem w PHP bo i po co...

po to, że wyłączyłem Sobie js w przeglądarce. wiem jestem dziwny, ale tak. to jest najszybsza metoda żeby napakować komuś spamu do formularza jak nie będzie walidować pól wyżej niż przez js.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 21:30