Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
nospor
post
Post #2





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




daj dla inputa onblur="alert('ups, wyszedlem z inputa')" winksmiley.jpg

ps: przenosze bo z ajaxem to nie ma nic wspolnego


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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ś 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 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 smile.gif


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
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 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 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.. 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 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ąć 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 17:51