• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

dragonfire

Validar campo "usernames" iguais em javascript

4 mensagens neste tópico

Olá a todos!

Desde já o meu obrigado a toda a comunidade do P@P pelo trabalho desenvolvido em prol da programação em Portugal.

O meu problema é o seguinte:

Tenho um formulário de registo de users em que os campos estão a ser validados por funções javascript, mas existe um campo "nickname" que quero que seja verificado na BD se já existe um com o mesmo nome. Isto faz-se bem quando o mando para uma página nova, do tipo "processa_login.php", mas eu queria que isto fosse feito através da mesma função "valida form()" do javascript, para o utilizador não ter de voltar a trás e ter de escrever tudo de novo, só por causa do nick já existir, é muito chato.

O código que tenho é este:

SQL que vai buscar à BD todos os nicknames existentes e guarda-os num array

<?php $sql = "SELECT nickname FROM users";
$result = mysql_query($sql);

if ($result){
	$count = mysql_num_rows($result);
        $array_nick=array();
	for($i=0; $i< $count; $i++){
		$array_nick[$i]=(mysql_result($result,$i));
	}
}
?>
 

Código em Javascript + php que coloquei na função "validaform()" que está a ser chamada quando faço submit:

function ValidaForm(){
    if (document.registo.nickname.value  == "<?php for ($i=0; $i< $count; $i++){
                                                                                 echo $array_nick[$i];
									       };?>" 
    {
	alert ("o nickname que escolheu já existe, por favor escolha outro");
        return (false);
    }
}
Se me podessem ajudar agradecia, é que já dei voltas e voltas e não vejo onde poderá estar o erro. Pois o pior é que não dá erro, simplesmente interrompe a função "validaform", deixa de validar os campos todos e vai directamente para a página de "processa_registo.php", onde faz a verificação através do $POST e do  query à BD.

Desde já o meu obrigado por uma  futura ajuda.

Abraços

Dragonfire

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Adicionei Geshi ao teu post para a próxima faz tu isso :P

O primeiro não é JS, é PHP :P

Anyway, o erro está no segundo bloco. Algo como:

<script language="javascript">    
function ValidaForm(){	


 if (document.registo.nickname.value  == "<?php echo implode('" or document.registo.nickname.value  =="', $array_nick[$i]); ?>" 
									       {
alert ("o nickname que escolheu já existe, por favor escolha outro");
        return (false);
        }

Deve dar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado djthyrax pela resposta, mas não deu, pensei que fosse de estares a chamar o índice do  $array_nick[$i] sem fazer o ciclo, pois ele assim só chama o último valor do array mas também não deu...

Não sei o que se passa, pois assim já devia funcionar, confesso que desconhecia este método "implode" mas pareceu-me lógica a sua utilização neste caso. Infelizmente não está a resultar.

Obrigado na mesma

Abraços

Dragonfire

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora