Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Francisco Rocha

"Chamar" função Java dentro do PHP

Recommended Posts

Bom dia pessoal,

É o meu primeiro tópico aqui no iMasters.

Recorri a vocês porque sei que poderão me ajudar, vamos ao meu caso:

Tenho um arquivo chamado functions.js que contém várias funções js, entre elas, uma função chamad fade_login (function fade_login() {})

 

O que contem nessa função? O seguinte código:

 

function fade_login() {

$(document).ready( function () {

$("#bloco_errors").fadeIn(1000);

})

document.getElementById('bloco_errors').style.display = 'block';

}

 

Se eu colocar essa função para ser executada em botão, link ou o que for, funciona perfeitamente.

A página inicia com a div "#bloco_errors" com o style.display = 'none'; e ao clicar no link ou botão especificado executa o fade. Beleza.

 

Mas..

 

Tenho uma tela de login básica, pra digitar usuário e senha, clicar no link "Entrar" e executar o form com o action definido para login.php

Entenda: a tela de login é index.php e o form executa no login.php.

Dentro do login.php, tenho apenas PHP mesmo. iniciar com <? e termina com ?>. Só que dentro desse login.php faço verificação se o usuário foi digitado, se o usuário que foi digitado existe, se o usário existe e se a senha dele foi digitada corretamente.

Aí que vem o porém, quero dentro do PHP chamar a minha função fade_login() que está lá no arquivo functions.js.

E é isso que não estou conseguindo. Infelizmente.

 

Sei que eu posso fazer dentro do if do php:

 

echo "<script>alert('teste');</script";

 

mas não quero essa solução, há outra?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai Francisco,

 

Para fazer isso você deve usar AJAX, já ouviu falar?

 

Porque javascript é client-side e php é server-side, então quando o usuário clica em enviar o formulário, o navegador fica esperando como resposta uma página completa, que será processada pelo servidor que roda php, e não apenas uma chamada de um método de javascript.

 

Com Ajax isso é possível pois os dados do formulário serão enviados para o servidor e o navegador poderá receber como resposta a chamada do método que mostra o bloco de erros.

 

Aqui você encontra o material para iniciar os estudos em ajax: http://www.w3schools.com/Ajax/Default.Asp

 

Flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Danilo, bom dia! Tudo certo?

 

Então, até desconfiei que poderia ser Ajax.

Mas sou teimoso!

 

Haha.

Bom, e no Ajax dá pra utilizar jQuery? Ou para fazer o efeito do Fade, Slide e etc eu terei que usar outras bibliotecas?

 

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí que vem o porém, quero dentro do PHP chamar a minha função fade_login() que está lá no arquivo functions.js.

não é necessário, dessa forma.

 

basta fazer o seguinte:

$(document).ready(function(){
  $("#bloco_errors").fadeIn(1000);
});

e pronto.

 

Não vi nenhum motivo para usar ajax nisso.

A tua função está completamente incorreta. Está indo contra vários conceitos do jQuery, e da programação javascript não obstrutiva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William,

 

Parece que ele quer o usuário receba a mensagem de erro (se existir) sem submeter a página.

Esse código que você mostrou é apenas para ocultar a div que mostra os erros, e realmente ele tinha escrito errado.

 

Existe a possibilidade de fazer essa tarefa sem usar javascript, usando sessão por exemplo, que pode carregar as mensagens de erros. Mas acho que fazer com Ajax seja bom para aprender a usar o recurso, e depois que ele dominar a técnica deverá se preocupar com avascript não obstrutivo. (minha opnião)

 

E Francisco, é possível fazer requisições AJAX com jQuery, é até mais fácil fazer assim, veja na documentação do jQuery como fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que ele quer o usuário receba a mensagem de erro (se existir) sem submeter a página.

opa! @Daniloinf, então cara... em nenhum momento ele cita 'sem submeter', 'sem refresh' ou coisa do tipo.

O que ele disse foi:

 

 

Tenho uma tela de login básica, pra digitar usuário e senha, clicar no link "Entrar" e executar o form com o action definido para login.php

Entenda: a tela de login é index.php e o form executa no login.php.

ou seja, tem o form no index.php

Ele faz um submit para o arquivo login.php, e depois disso volta para o index.php

 

Neste momento, ele gostaria que o fade ocorre-se.

A melhor forma nesse fluxo que ele já tem, é realmente usar SESSION, ou parâmetros no retorno da querystring.

 

Para fazer com AJAX, teria que enviar o form com ajax, e na volta, chamar uma função de callback, para esconder a div dele.

O correto, é fazer funcionar sem javascript, e depois adicionar para melhorar a experiência do usuário. E não fazer o sistema depender de uma linguagem que pode ser desativada.

 

Eu nem gosto de indicar AJAX para os usuários, pq fazem tanta confusão, e querem usar em tantos lugares absurdos/desnecessários..

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto, é fazer funcionar sem javascript, e depois adicionar para melhorar a experiência do usuário. E não fazer o sistema depender de uma linguagem que pode ser desativada.

 

Verdade cara, melhor buscar uma solução de um jeito simples e depois, se quiser, incrementa-la com ajax.

 

Só sugeri ajax para ele pq estou terminando de ler um livro sobre o assunto, e na boa, fiquei muito entusiasmado com o que pode ser feito com isso.

 

=]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde senhores,

desculpe responder esse tópico somente agora, é que não estava marcada a opção de acompanhamento de tópico via e-mail.

 

Bom, já uso sessions nesse meu sistema de login, e lá no arquivo login.php eu tratava meus erros na boa, e fazia aparecer uma popup básica com o alert do javascript.

Só eu queria realmente usar esses efeitos de fade e slidedown por exemplo, pra ficar algo mais bonito para o usuário.

Frescura, eu sei. Mas já vi esse efeito e achei super bacana.

 

Agora fiquei na dúvida..

Usou ou não ajax?

Qual solução se adequaria mais?

 

Não precisam nem esmiuçar o assunto. É só dar o norte, que o resto eu corro atrás.

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.