Fabyo 66 Denunciar post Postado Janeiro 29, 2006 Pessoal vou explicar como fazer para chamar uma função php via javascript, esse metodo é muito util e muito usado em varias linguagens como por exemplo .NET o famoso doPostBack onde você pode usar varios botoes e ações num mesmo formulario ,sem precisar fazer gambiarra, o metodo doPostBack é usado você passando o nome da função que você quer chamar dai o javascript da um submit do form enviando o nome da função, esse metodo evita você ter que criar diversas paginas uma para cada ação como por exemplo: salvar.php. editar.php, excluir.php etc..., nesse metodo tera apenas 1 script chamado action.php e dentro dele esta todas funções que você precisa usar vamos ao exemplo: index.html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1257" /> <title>PosBack</title> <script src="funcoes.js" type="text/javascript"></script> </head> <body> <form id="formulario" method="post" action="action.php" name="formulario"> <input type="hidden" id="action" name="action" /> <input type="text" name="campo" /><br /> <input type="text" name="campo2" /><br /> <input type="button" value="Salvar" class="botao" onclick="java script:doPost('formulario', 'salvar');" /> <input type="button" value="Editar" class="botao" onclick="java script:doPost('formulario', 'editar');" /> <input type="button" value="Excluir" class="botao" onclick="java script:doPost('formulario', 'excluir');" /> </form> </body> </html> no index.html o mais importante é o campo hidden onde via javascript na função doPost sera passado o nome da função php e basta colocar a função doPost num botao ou numa ação que você quiser doPost('nome_formulario', 'nome_da_funcao_php') funcoes.js: function doPost(formName, actionName) { var hiddenControl = document.getElementById('action'); var theForm = document.getElementById(formName); hiddenControl.value = actionName; theForm.submit(); } no funcoes.js ele pega o nome da função passada por parametro e passa pro campo hidden e da um submit do formulario ou seja ele envia action.php <?php //pego o nome da função que foi passada para o campo hidden $funcao = $_REQUEST["action"]; /*usei REQUEST porque dependendo do que você for fazer você pode querer enviar via get o nome da função dai */ela sera pega do mesmo jeito, porque REQUEST recebe dados via GET, POST, e COOKIE //verifica se a função existe //http://br2.php.net/manual/pt_BR/function.function-exists.php if (function_exists($funcao)) { //call_user_func Chama uma função de usuário dada pelo primeiro parâmetro //http://br2.php.net/manual/pt_BR/function.call-user-func.php call_user_func($funcao); } function salvar() { $campo = $_POST["campo"]; $campo2 = $_POST["campo2"]; echo "<script>alert('Salvando [$campo] e [$campo2]');</script>"; echo "<script>location.href = 'index.html';</script>"; } function editar() { $campo = $_POST["campo"]; $campo2 = $_POST["campo2"]; echo "<script>alert('Editando [$campo] e [$campo2]');</script>"; echo "<script>location.href = 'index.html';</script>"; } function excluir() { $campo = $_POST["campo"]; $campo2 = $_POST["campo2"]; echo "<script>alert('Excluindo...');</script>"; echo "<script>location.href = 'index.html';</script>"; } ?> pronto é simples, mas se algum tiver dificuldades de implementar só postar as duvidas Compartilhar este post Link para o post Compartilhar em outros sites
Epyllion 0 Denunciar post Postado Janeiro 30, 2006 Ótimo. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Douglas 6 Denunciar post Postado Fevereiro 1, 2006 Perfeito! Compartilhar este post Link para o post Compartilhar em outros sites
Leandro - xd 0 Denunciar post Postado Fevereiro 2, 2006 Parabéns cara! Compartilhar este post Link para o post Compartilhar em outros sites
joaogil 1 Denunciar post Postado Fevereiro 7, 2006 Legal Fabyo !Eu tb já fiz formulários com lógica parecida ! Compartilhar este post Link para o post Compartilhar em outros sites
Júlio C. Franco 0 Denunciar post Postado Maio 3, 2006 Muito bom!Só uma dúvida... como faço p/ passar um parametro p/ exclusao caso eu queira excluir um registro especifico??Ex.:$id = ??;Delete from tabela where codigo = $id; Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 4, 2006 legal.eu nunca tinha usado call_user_func() Compartilhar este post Link para o post Compartilhar em outros sites
CruzBrasil 0 Denunciar post Postado Outubro 28, 2006 Valeu! me safou um tempão, mas tem 3 coisas;1º "java script" levei um tempão pra cair na real que deveria ser "javascript".2º quando clico no btn, abre a minha página "funcoe.php" e fica em branco.. como resolvo isso ?3º to com a mesma dúdica do Júlio C. Franco, como passar um parametro dentro doPost('formulario', 'envia') na funcao envia ?Baum.. enquanto isso eu vou arriscar uns testes aki e google searchs eather.. valeu a todos. Compartilhar este post Link para o post Compartilhar em outros sites
diegotiko 0 Denunciar post Postado Novembro 5, 2006 muito bom mesmo, principalmente pra quem ta começando.Parabens Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Novembro 7, 2006 Respondendo a duvida do CruzBrasil e Júlio C. Franco como mostrei no proprio exemplo, quando quiser passar um parametro por exemplo para excluir, voce passaria normalmente um id e dai nao muda nada meu exemplo basta voce direcionar para pagina excluir.php e colocar o id no campo hidden assim a pagina de excluir ira receber o id por post e ira excluir o campo Compartilhar este post Link para o post Compartilhar em outros sites
mestre fyoda 1 Denunciar post Postado Novembro 8, 2006 como faço para passar um parametro php para alguma função php ? por exemplo : function excluir ( $id ) {............} Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Novembro 13, 2006 coloque no campo hidden e pegue o valor dentro da função exemplo: function excluir ( $id ) { $campo_novo = $_POST["campo_novo"]; } Compartilhar este post Link para o post Compartilhar em outros sites
Lessandro 0 Denunciar post Postado Novembro 23, 2006 Entao..boiei..mas tbm nao sei mecher muito bem..o meu problema eh o seguinte, preciso excluir funcionarios de um banco de dados, fiz a funcao em php, mas eu preciso colocar uma certa protecao pra ninguem apagar os dados sem querer, ai coloquei um botao excluir no onclick q por sua vez se clicado sim deveria chamar a funcao "excluiservidor" que eu fiz em php. mas eu nao sei como colocar dentro do <script> um comando q execute essa funcao do php. se puder me ajudar fico bem grato..vou deixar aqui um exemplo do que eu fiz e como nao sei nada de javascript ta bem complicadinho..Obrigado a quem puder me ajudar.<input type="button" name="excluir" value="Excluir" onclick="excluifuncionario()" /><script>function excluifuncionario(){if(!confirm('Deseja realmente excluir esse servidor?'))window.location.reload();else\\chamar a funçaõ excluiservidor do php }</script> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Novembro 24, 2006 entao esse exemplo que eu postei é para fazer exatamente isso, mas se voce nao entendeu ou nao conseguiu implementar, explica aonde ficou sua duvida? Compartilhar este post Link para o post Compartilhar em outros sites
Lessandro 0 Denunciar post Postado Novembro 28, 2006 Entao, o problema é que pra mim que estou começando fica meio complicado porque é muito generico sabe? do tipo..milhoes de codigos e eu acabo me perdendo no que significa o uqe..mas tudo bem nao esquenta nao..to ralando aqui uma hora eu aprendo.. soh o q eu queria fazer era um jeito facil de chamar uma funcao php dentro do java, pq o cara que tinha bolsa antes d mim aqui na facu fazia essas coisas em tipo 5 linhas ou menos.. e eu acho q pra conseguir chamar uma funcao caso eu clique em OK no meu onclick deve tomar mais ou menos isso tbm :) .. a funcao que você colocou tenho certeza que é otima e deve funcionar pra um monte de cosias..mas er..tem muita letrinha pra mim ainda.. hehe..se der pra ajduar eu agradeço muito, senao rolar sussa eu tenho certeza q ainda vou ter bilhoes d duvidas..valeu !!!ah, pra completar minha duvida, eu queria dizer que nao sei o que eh div, ou hidden e pra eu entender a diferença entre post e get ja deu um trabalhao, e o negocio do doPost..hum pra q q serve? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Novembro 28, 2006 doPost é a função que da o submit na pagina passando o nome da função php que deve ser executada. e campos hidden sao campos ocultos onde voce guarda um valor o o usuario nao visualiza na tela, só lembrando que se o usuario ver o codigo fonte da pagina ele ira ver o valor do hidden, entao nao use hidden para dados que precisam ter privacidade. Compartilhar este post Link para o post Compartilhar em outros sites
joaogil 1 Denunciar post Postado Novembro 28, 2006 Como eu falei antes, eu já tinha feito algo parecido. O PHP + JavaScript formam uma dupla muito eficiente, podendo ser feito com os 2 formulários bem complexos... Neste caso, o mais importante é o theForm.submit(); na função JavaScript, sem ele somente seria possível chamar a função PHP com Ajax, que eu ainda não domino. Parabéns Fabyo, pelo código simples porém, bem pensado ! Compartilhar este post Link para o post Compartilhar em outros sites
Arrasted 0 Denunciar post Postado Dezembro 1, 2006 Ao clicar nos botoes fica em branco, a mesma dúvida do amigo.. que lendo sua resposta nao consegui entender muito bem. Compartilhar este post Link para o post Compartilhar em outros sites
will_Dk 0 Denunciar post Postado Dezembro 1, 2006 Mas fiquei com uma duvida?No caso eu estou passando por GET e não passando po POST..Uando um link dinamico.A função usa dois paramtros ... nome formulario e nome da funçãoComo eu faço, ja que estou usando link dinamico?e a pagina que envia a variavel é o prorpio carrinho de compras no caso "carrinho.php"Muito obrigado desde já!!! Compartilhar este post Link para o post Compartilhar em outros sites
Acharnobairro 0 Denunciar post Postado Dezembro 11, 2006 entao esse exemplo que eu postei é para fazer exatamente isso, mas se voce nao entendeu ou nao conseguiu implementar, explica aonde ficou sua duvida?Estou me esforçando muito para encontrar ensinamento de como passar informações do JavaScript para o php. Seus ensinamentos "quase" responderam o que procuro.Quero colocar um banner rotativo, com leitura das imagens em um array local e quando clicado na imagem, contar o clique no php e saltar ao site do cliente.A idéia de seus ensinamentos sugerem isso, mas não consigo abstrai-los para solucionar meu problema. Pode me ajudar?Grato - Flavio Compartilhar este post Link para o post Compartilhar em outros sites