|
![]() |
||
mutreta em php / javascript
|
||
. Nós temos 759.302 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.
![]() |
|
|
Opções do Tópico |
|
|
#1 (permalink) |
|
GeeK
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23
![]() |
Tenho que validar o conteúdo de um campo, verificando se o mesmo já está em uma base de dados.
O problema é que não posso validar apenas quando for enviar os dados do formulário (neste caso utilizaria javascript). Deve ser feito após o primeiro campo (apenas este precisa ser validado quanto a existência ou não na base de dados). Por que? Porque a analista colocou na cabeça que deve ser assim... :roll: O usuário não pode saber que já existe tal valor somente após o preenchimento de todos os demais campos... :evil: Tive a idéia de que quando o campo perdesse o foco, faria uma pesquisa na base de dados. O porém é que a perda de foco é em javascript (lado cliente), e a busca no banco é em php (lado servidor), indo por água abaixo... Alguma dica?
__________________
No caminho dos scripts. Por enquanto, powershell... |
|
|
|
|
|
#2 (permalink) |
|
Tô em todas
|
rwar,
Também tenho interesse nesse tipo de solução. Mas vejo um grande problema: como conectar ao banco-de-dados sem revelar, no código javascript, o login e a senha??? Você não poderia utilizar uma tag <select> para isso? Ou usar tags <input type="hidden"> para guardar os valores a serem verificados depois por javascript?
__________________
Linux User #264184 - Mandriva 2010.2
http://www.lgrinformatica.com.br Notebook CCE SR-ONE Core2Duo 7250 4GB 500GB Intel Tablet Herotab C8M Android 2.3.3 http://www.slatedroid.com/forum/139-...b-c8dropad-a8/ |
|
|
|
|
|
#3 (permalink) | |
|
GeeK
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23
![]() |
Citação:
E, dessa forma, chegamos ao mesmo impasse... :lol: Vou dizer à analista que não tem como e pronto, sei lá...
__________________
No caminho dos scripts. Por enquanto, powershell... |
|
|
|
|
|
|
#4 (permalink) |
|
Super Participante
Registrado em: Jan 2005
Mensagens: 958
Reputação: 16
![]() |
e se tentar com um if do tipo if($campo == "") { echo "decisão"; } ????
__________________
http://www.oz.railsplayground.com/ |
|
|
|
|
|
#5 (permalink) |
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Alternativas:
1) Ao abrir a página, envie junto uma tabela JavaScript com todos os valores possíveis para o campo citado. Daí vc pode comparar, e validar. Claro, só funciona se o campo tiver poucos valores possíveis. 2) Criar um formulário invisível. Quando o campo perder o foco, você faz esse formulário invisível consultar o BD. Para as questão da senha, se o banco de dados for SQL, você pode criar uma senha com acesso ReadOnly. Ou criar uma página PHP que faz a consulta, a partir de uma senha read only predefinida e não divulgada.
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|
|
|
|
|
#6 (permalink) | |
|
Tô em todas
|
Citação:
jqueiroz, quanto a sua primeira sugestão, eu já utilizo dessa forma, mas, como você já disse, fica muito ruim para tabelas grandes. Por isso, interessaria-me uma forma alternativa, mas sem ter que recarregar toda a página. Como funcionaria esse formulário invisível? Pergunto porque esse "formulário invisível" precisaria chamar uma página em php (que faria o acesso ao BD) e assim retornar valores. Seria através de frames?
__________________
Linux User #264184 - Mandriva 2010.2
http://www.lgrinformatica.com.br Notebook CCE SR-ONE Core2Duo 7250 4GB 500GB Intel Tablet Herotab C8M Android 2.3.3 http://www.slatedroid.com/forum/139-...b-c8dropad-a8/ |
|
|
|
|
|
|
#7 (permalink) |
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Mais ou menos assim: você cria um DIV, posiciona ele fora da tela. Dentro do DIV, coloca um IFRAME. Nesse IFRAME, carrega o outro formulário. Esse outro formulário vai ser todo manipulado por funções JavaScript. Tipo:
Código:
------------------------------------------- Acabei de pensar numa outra alternativa. Digamos que vc tenha o script "meuform.php", que monta esse formulário. Ao ser chamado sem parâmetros, ele monta o formulário vazio, sem dados. O detalhe: a ação do formulário é chamar a si mesmo. Mas, quando o usuário preenche o campo-chave, ele imediatamente submete o formulário, forçando o script a ser carregado de novo, mas agora com o campo-chave preenchido. Agora você tem a chance de fazer as buscas e as validações que quiser, pois o formulário já está aparecendo na tela do cliente, e o console dele está "em extase", perdido entre o foco em um campo e outro. Retornando a resposta do script, os campos são preenchidos, exatamente por cima de onde estavam antes, e o cliente não irá perceber que na verdade você está em outra página, pq afinal é a mesma página, apenas recarregada. Que tal assim? Quer tentar???
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|
|
|
|
|
#8 (permalink) |
|
Tô em todas
|
jqueiroz,
Excelente, eu já imaginava que era usando o DIV (já uso ele para menus e etc), só não sabia que tinha que usar o IFRAME. Vou testar. Obrigado :mrgreen: Quanto a segunda idéia eu já a utilizo. Mas tem um problema: quando a conexão é banda larga fica razoavelmente rápido, mas quando a conexão é discada fica muito lento fazer esse processo. Acho a primeira melhor. 8)
__________________
Linux User #264184 - Mandriva 2010.2
http://www.lgrinformatica.com.br Notebook CCE SR-ONE Core2Duo 7250 4GB 500GB Intel Tablet Herotab C8M Android 2.3.3 http://www.slatedroid.com/forum/139-...b-c8dropad-a8/ |
|
|
|
|
|
#9 (permalink) |
|
GeeK
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23
![]() |
Como optei pela segunda opção (creio ser mais "acessível" e mais fácil), está ocorrendo um problema: não estou conseguindo enviar o valor para a função que fará a validação. Estou fazendo desta forma:
Código:
O que devo colocar para o valor ser passado para a própria página?
__________________
No caminho dos scripts. Por enquanto, powershell... |
|
|
|
|
|
#10 (permalink) |
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
rwar, acho que desse jeito não vai funcionar. Tente fazer assim:
Código:
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|
|
|
|
|
#11 (permalink) | |
|
GeeK
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23
![]() |
Não funciona...
Que saco!!! Faço o que com essa @#$%$¨$%&¨ de script??? :evil: O erro que dá é este: Citação:
Código:
__________________
No caminho dos scripts. Por enquanto, powershell... |
|
|
|
|
|
|
#12 (permalink) |
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
dê um nome ao form:
Código:
Código:
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|
|
|
|
|
#13 (permalink) | |
|
GeeK
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23
![]() |
Citação:
A lógica está correta com certeza, porém agora não dá erro, mas também não executa o evento on Blur... Vou fazer mais algumas tentativas com o outro método que você mencionou prá ver se funciona...
__________________
No caminho dos scripts. Por enquanto, powershell... |
|
|
|
|
|
|
#14 (permalink) |
|
Highlander
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.782
Reputação: 1756
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Em vez de usar o evento "onBlur", tente usar o evento "onChange". No livro que eu uso como referência (Goodman, "JavaScript - A Bíblia") o exemplo está usando este método.
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns ![]() |
|
|
|
|
|
#15 (permalink) |
|
GeeK
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23
![]() |
Consegui fazer jqueiroz. Devo ter esquecido ou o ponto e vírgula ou os parênteses, não lembrando com qual tinha testado :roll: ... Testa tanto que nem lembra mais o que testou...
Valeu pela ajuda, mas mesmo assim vou fazer um teste com esse outro evento (onChange) prá ver o que muda...
__________________
No caminho dos scripts. Por enquanto, powershell... |
|
|
|
|
|
#16 (permalink) |
|
Newbie
Registrado em: Jul 2007
Mensagens: 2
Reputação: 0
![]() |
http://jsval.fantastic-bits.de/
Ai pessoal.. Nesse site em tem um 'fw' para validacao de formulario. Eu nao uso exatamente para a duvida em questao, mas ele tem algumas funcionalidades bem uteis. E legal utiliza-lo para diminuir o numero de cliques do usuario, evitando aquele transtorno de "Informacao incorreta!!", aí volta e faz tudo novamente. []'s ---- Andre http://apedroso.blogspot.com Última edição por alppedroso : 27-07-2007 às 10:42. Motivo: Equivoco na ultima msg. Correção! |
|
|
|
|
|
#17 (permalink) |
|
GeeK
|
Ah... mais um caso onde AJAX salva o dia
![]() |
|
|
|
|
|
#18 (permalink) |
|
Super Participante
|
Ia dizer isso agora. Com um pouco de ajax isso ficaria fácil
__________________
Conhecimento é saber que tomate é fruta. Sabedoria é saber que não se coloca tomates em uma salada de frutas. |
|
|
|
|
|
#19 (permalink) | |
|
Super Participante
|
Eu li esse quisso todo, coçando os dedos para "falar" em AJAX ou a maneira correta de submeter o formulário e encontro:
Citação:
|
|
|
|
|
![]() |
| Opções do Tópico | |
|
|