Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Dynamiczne sprawdzanie hasła
Forum PHP.pl > Forum > Przedszkole
Raven1122
Witam mam taki kod:
AJAX:
  1. function check_pswd(){
  2. var password = $("#password").val();
  3. var passwordr = $("#passwordr").val();
  4. if(password.length > 3){
  5. $('#Loading2').show();
  6. $.post("./php/check_pswd.php", {
  7. password: $('#password').val(),
  8. passwordr: $('#passwordr').val(),
  9. }, function(response){
  10. $('#Info').fadeOut();
  11. $('#Loading').hide();
  12. setTimeout("finishAjax('Info', '"+escape(response)+"')", 450);
  13. });
  14. return false;
  15. }
  16. }
  17.  
  18. function finishAjax(id, response){
  19.  
  20. $('#'+id).html(unescape(response));
  21. $('#'+id).fadeIn(1000);
  22. }


i PHP:
  1. <?php
  2. if($_REQUEST)
  3. {
  4. $password = $_REQUEST['password'];
  5. $passwordr = $_REQUEST['passwordr'];
  6.  
  7. if($password != $passwordr) // not available
  8. {
  9. echo '<div id="Error">Hasła nie są takie same</div>';
  10. }
  11. else
  12. {
  13. echo '<div id="Success"></div>';
  14. }
  15.  
  16. }?>


i HTML
  1. <tr>
  2. <td><input id="password" name="password" type="text" class="logininput" style="width:120px;height:20px;"></td><td><input id="passwordr" name="passwordr" onblur="return check_pswd();" type="text" class="logininput" style="width:120px;height:20px;"></td><td><span id="Loading2"><img src="loader.gif" alt="" /></span><div id="Info2"></div></td>
  3. </tr>


Lecz nie działa to za bardzo, bo zawsze pokazuje ze hasla nie sa takie same, jakies pomysly? jeszcze jedno pytanie, co zrobic zeby nie wpisywac calego kodu w head tylko stworzyc plik js z tym i w head dac do tego sciezke?(pobowalem tak to nic wtedy sie uz nie dzialo)

type jest text tylko po to bo sprawdzalem czy faktycznie nie sa takie same
mortus
Bo zauważ kolego, że najpierw deklarujesz zmienne var password i var passwordr, a później przesyłasz dane indeksując je tymi zmiennymi. Jeśli zatem wpiszesz hasła krowa i krowa, to w tablicy $_REQUEST masz $_REQUEST['krowa'] = 'krowa' i $_REQUEST['krowa'] = 'krowa', zatem w tej sytuacji posługujesz się jedną zmienną z $_REQUEST. Jeśli wpiszesz hasła krowa i kot, to w $_REQUEST masz $_REQUEST['krowa'] = 'krowa' i $_REQUEST['kot'] = 'kot'.

Zresztą: print_r($_REQUEST); powinien Ci rozjaśnić sprawę.
Raven1122
ok juz rozwiazalem moj problem, no i teraz takie pytanie:
w formularzu mam ogolnie loginn, password i email, jak moge wyswietlic przycisk submit jezeli wszystkie dane zostaly prawidlowo podane?
mortus
Dla przycisku użyj atrybutu disabled, a dodatkowo możesz go ukryć CSS-em display: none;. Jeśli wszystkie dane będą się zgadzać, to modyfikujesz wartość atrybutu disabled i zmieniasz styl CSS np. na display: inline-block;.

Od strony skryptu:
- wszystkie dane możesz np. sprawdzić w ciele jednej funkcji, a na końcu tej funkcji wykonać to, o czym wyżej pisałem. Możesz też wykorzystać callback-i metod jQuery i jakąś zmienną globalną.
Raven1122
mortus a moglbys mi to rozpisac? bo w ajaxie nie siedze zbyt gleboko, to powyzej bylo robione z ksiazka smile.gif

Odswiezam

To napisalby mi ktos takie cos??

panowie, pomozcie prosze, dosc wazna sprawa smile.gif
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.