Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] validacja formularza, Sprawdzanie w tle czy nick istnieje
xajart
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


Witam.

Realizuje pewien projekt z elementami ajaxa. I chciałbym wbudować w formularz sprawdzanie w tle czy dany nick istnieje w bazie danych. 

Mianowicie chodzi o to że mam w formularzu pole input, do którego jak użytkownik wprowadzi nazwe swojego nick, to automatycznie by skrypt w tle sprawdzał w bazie danych czy taki nick już istnieje i obok pola input by pojawiał się obrazek potwierdzający że jest wolny lub zajęty. 

Znalazłem w necie mase skryptów ale wszystkie dotyczna przycisku submit i wywołania funkcji przez onclick, a mi chodzi o to by bez klikania w przycisk, tylko po wypełnieniu pola i przejściu do następnego wiersza (tablulatorem lub wskaźnikiem myszki), aplikacja automatycznie w tle sprawdziła tą wpisana wartość i porównała z wynikami z bazy danych czy nick taki istnieje (czyli występuje w jednym rekordzie) czy może nieistnieje (zwraca 0 rekordów).

Ten post edytował xajart 12.05.2009, 09:53:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post
Post #2





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




daj dla inputa onblur="alert('ups, wyszedlem z inputa')" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

ps: przenosze bo z ajaxem to nie ma nic wspolnego
Go to the top of the page
+Quote Post
230005
post
Post #3





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

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


Do inputa przypisujesz onchange = "jakas_funkcja()", a resztę skryptu tak samo jak w tych gotowcach, co znalazłeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
xajart
post
Post #4





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


Okej dzięki juz wiem jak to zrobić, udało mi się to wykonać za pomocą biblioteki mintAjax. 


Ale nie mogę wyczaić jak to samo zrobić przy pomocy JQuery (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
kajzur
post
Post #5





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

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


Wydaje mi się że mintAjax jest wydajniejszą biblioteką ;> niż ten wieeelki JQuery (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
xajart
post
Post #6





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


Nie mogę ogarnąć JQuery

MintAjax mam zrobione tak:

Kod
<script src="mintAjax.js" type="text/javascript"&gt;&lt;/script>;
<script>
function spr() {
var req = mint.Request();
req.method="post";
req.AddParam("input", $("name").value);
req.Send("sprawdz.php", "wynik");
}
</script>
</head><body>
<input id="name" type="text" onchange="spr()" />
<div id="wynik"></div>
</body></html>


Plik sprawdz.php
Kod
echo $_POST['input'];


A teraz chciałbym to samo zrobić w JQuery, czy może mi ktoś pomóc, bo wszystkie próby jakich się podjełem skończyły się fiaskiem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) A niestety panel z formularzem mam zbudowany na JQuery i wewnątrz mintAjaxa niezastosuje bo wyświetla mi wartość undefined rozumie że się jakoś biblioteki gryzą.

Ten post edytował xajart 12.05.2009, 18:46:18
Go to the top of the page
+Quote Post
kamil4u
post
Post #7





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


OT:
Cytat
Wydaje mi się że mintAjax jest wydajniejszą biblioteką ;> niż ten wieeelki JQuery smile.gif

To nie zależy od wydawania się, a od napisania kodu - musiałbyś zrobić odpowiednie testy - chyba, że takie zrobiłeś(wtedy pokaż nam wyniki - jak możesz) - najwydajniejsze są skrypty 'własne' głównie dlatego, że 'karzesz' robić przeglądarce tylko to co jest niezbędne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
xajart
post
Post #8





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


naskrobałem coś takiego

Kod
function spr() {

    $('input[type="text"]#name.').blur(function(){
 var a = this.value;
   
     alert(a);
                                       });

};


ale nie wiem czemu wyświetla się komunika dopiero jak drugi raz tabulatorem przejde przez to pole. 
I puki co nie wiem jak to przekazać do plku php, z tego co gdzieś czytałem to mniejwięcej jest jakos tak:
Kod
$.post('email.php', {name: .... })



tylko że w miejscu kropek nie wiem co mam wstawić bo jak dam this.value to niedziała.
Go to the top of the page
+Quote Post
nithajasz
post
Post #9





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

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


  1. $("input[name='nick']").blur(function(){
  2. $.post('test_nick.php', {nick: $(this).val()}, function(data){
  3. $('#test').html(data['result']);
  4. }, "json");
  5. });


To tak najprościej jak się da.. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował nithajasz 13.05.2009, 10:23:07
Go to the top of the page
+Quote Post
xajart
post
Post #10





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


Od rana siedziałem nad dokumentacja JQuery, bardzo przydatna dokumetnacja, teraz to rozbuduje na swoje potrzeby, ale może komuś się przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)  

Moje rozwiązanie:



Kod
...

<script src="http://code.jquery.com/jquery-latest.js"></script>
 
  <script>
 $(document).ready(function(){
     $("input[type='text']#name").change( function() {
         var str = $(this).val();

         $.ajax({
                type: "POST",
                url:  "sprawdz.php",
                data: { name: str },
                // msg zawiera wartość zwróconą przez skrypt php,
                // w przypadku poprawnego zakończenia działania
                beforeSend: function (XMLHttpRequest) {
                        $("div#content").html("Trwa sprawdzanie loginu.");
                },
                success: function(msg) {
                    // zapiszmy wynik działania skryptu na stronie html w div o id=”content”
                    $("div#content").html(msg);
                 },
                 error: function (XMLHttpRequest, textStatus, errorThrown) {
                     $("div#content").html('Przepraszamy, wiadomość nie mogła zostać wysłana.');
                 }
         });
     });
 });
  </script>
  <style>
  div { color:red; }
  </style>
</head>
<body>
<input type="text" id="name" />
<input type="text" id="name2" />
 
  <div id="content"></div>
</body>
</html>


plik sprawdz.php

Kod
echo $_POST["name"];




temat można zamknąć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował xajart 13.05.2009, 10:28:34
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: 5.10.2025 - 09:21