No artigo de hoje trago-vos um script, em PHP e AJAX, muito utilizado pela maioria formulários na altura de nos registar-mos em algum website. O script baseia-se em testar, em tempo real, se o utilizador que estamos a introduzir já está em uso naquele momento.
Com este simples script utilizando PHP e Ajax faremos um funcional sistema de verificação da disponibilidade de um campo, neste caso será o utilizador (username).
O que pretendemos é usar os eventos do Ajax e proporcionar ao utilizador um sistema de verificação de disponibilidade em tempo real.
Existe N, formas de obeter o mesmo resultado, nós vamos usar o mínimo possível, de maneira a ser totalmente compatível e personalizável nós vossos sistemas.
HTML
Primeiro realizamos o formulario, no caso bem simples como podem ver, e adicionamos o este vai conter o icon.
<div id="form"> <label for="utilizador">Utilizador: <input name="user" type="text" id="user" maxlength="15"> <span id="resultado"></span> </label> </div>
Nos vários eventos do jquery encontramos o .keyup(), ele ativa a função que quisermos sempre que uma tecla é pressionada. Então o resultado é a cada letra que o utilizar pressionar o PHP será ativado para realizamos a verificação, utilizaremos o método POST para esse efeito.
$("#user").keyup(function (e) { var user = $(this).val(); $.post('validar.php', {'user':user}, function(data) { $("#resultado").html(data); }); });
PHP
Na parte do PHP realizamos um script para validar. Realizamos a ligação a base de dados, realizamos a query e tratamos os dados retornados.
if(isset($ _POST["user"])){ //ligção a BD $connecDB = mysqli _connect("servidor", "utilizador", "palavra-chave", "nome da tabela") or die('Impossível ligar a Base de Dados'); //received username value from registration page $user = $ _POST["user"]; //faz a query a base de dados $results = mysqli _query($ connecDB , "SELEC T * FROM utilizadores WHERE nick='$user'"); //contas os resultados $username_exist = mysqli _num_rows($results); //caso nao exista nenhum utilizador com o mesmo nome retornara "0" //o php assume como sendo false if($username_exist) { die('<img src="imgs/not-available.png" />'); }else{ die('<img src="imgs/available.png" />'); } }
Por hoje é tudo, até uma próxima!
Um comentário a “PHP / Ajax – Verificar disponibilidade em tempo real”
No post do php o name do post não seria “user” em vez de “username”?