Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [advajax] firefox, IE ok, FF już nie
uli
post
Post #1





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Witam!

Zacząłem bawić się z Ajaxem i napotkałem na problem, którego nie potrafię obejść.
W związku z tym proszę o pomoc.

Pod IE działa jak najbardziej prawidłowo, tzn. na submit sprawdza i jeśli login lub email sie powtarza to wyskakuje alert i border pola robi się czerwony.
Pod FF na submit się po prostu submituje (przechodzi do register3.php), a ewentualne błędy pokazuje dopiero po wciśnięciu "Wstecz".

Cały przykład z artykuły nospor'a (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Kod:

index.php

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <title>rejestracja nowego użytkownika</title>
  4. <script type="text/javascript" src="advajax.js"></script>
  5. <script type="text/javascript" src="register.js"></script>
  6.  
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. </head>
  9. <form action="register3.php" method="POST" id="registerForm" name="registerForm">
  10. <tr><td class="napis">Login:</td><td><input type="text" name="login" id="login"></td></tr>
  11. <tr><td class="napis">Hasło:</td><td><input type="password" name="Haslo"></td></tr>
  12. <tr><td class="napis">Powtórz hasło:</td><td><input type="password" name="Haslo2"></td></tr>
  13. <tr><td class="napis">E-mail:</td><td><input type="text" name="email" id="email"></td></tr>
  14. <tr><td colspan="2" style="text-align: center;"><button onClick="sprawdz_dane();">Zarejestruj mnie...</button></td></tr>
  15. </form>
  16. </body>
  17. </html>


Register.js:

  1. function $(id) {
  2. return document.getElementById(id);
  3. }
  4. function sprawdz_dane() {
  5. var login = $("login").value;
  6. var email = $("email").value;
  7. var zapytanie = "register2.php?login="+login+"&email="+email;
  8. advAJAX.get({
  9. url : zapytanie,
  10. onSuccess : function(obj) {
  11. if(obj.responseText == "login") {
  12. alert("Użytkownik o takim loginie jest już w bazie danych");
  13. $("login").style.border='1px solid red';
  14. $("email").style.border='1px solid #7F9DB9';
  15. }
  16. if(obj.responseText == "email") {
  17. alert("Ten e-mail isntieje już w bazie danych");
  18. $("login").style.border='1px solid #7F9DB9';
  19. $("email").style.border='1px solid red';
  20. }
  21. if(obj.responseText == "OK")
  22. $("registerForm").submit();
  23. }
  24. });
  25. }


Register2.php:

  1. <?
  2. $dbhost = 'localhost';
  3. $dblogin = 'root';
  4. $dbhaslo = '';
  5. $db = 'testowa';
  6. $sql = mysql_connect ($dbhost, $dblogin, $dbhaslo) or die ("Nie masz uprawnien");
  7. $login = mysql_escape_string($_GET['login']);
  8. $email = mysql_escape_string($_GET['email']);
  9. $query = "SELECT count(*)AS Ile FROM test1 WHERE Login='".$login."';";
  10. $result = mysql_query($query);
  11. $row = mysql_fetch_array($result);
  12. if($row['Ile']) 
  13.  echo 'login';
  14. else {  
  15.  $query = "SELECT count(*)AS Ile FROM test1 WHERE e_mail='$email';";  
  16.  $result = mysql_query($query);
  17.  $row = mysql_fetch_array($result);
  18.  if($row['Ile'])
  19. echo 'email';
  20.  else echo 'OK';
  21. }
  22. ?>


Wiadomo, że register3.php to plik dowolny do którego trafiają dane po przebrnięciu przez Ajaxa, więc nie będę go tu umieszczał.

Nospor - do tablicy Cię wywołuję!! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W końcu to Twój przykład (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kod
Cały przykład z artykuły nospor'a
....
Nospor - do tablicy Cię wywołuję  W końcu to Twój przykład

ze jak? Dzisiaj mam chyba powazną zaćmę bo nie kojarze tego kodu. Na dodatek pisany jest w zupelnie innym stylu niz ja to robie.
Rzuc linkiem do tego artykulu.

zmien: <button onClick="sprawdz_dane();">
na: <button onclick="sprawdz_dane();return false;">
Go to the top of the page
+Quote Post
uli
post
Post #3





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


Pomogło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

I zwracam HONOR!
Przeglądałem sekundę przed tym przykładem jakieś Twoje posty i z rozpędu przypisałem Tobie ten przykład (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)

Przepraszam.

Autorem jest również user z php.net: TomASS

Nospor sorki raz jeszcze!! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 00:01