Como fazer para executar métodos PHP através de javascript

Boa tarde!
Estou com a seguinte situação. Eu tenho um formulário “blank” onde monto uma página html para envio de e-mail.
Para facilitar no envio eu faço isso numa variável $html, onde para exibir eu apenas imprimo (echo ou print).
Dentro deste contexto eu também tenho funções em javascript para imprimir a página e também fechar o “frame” que é aberto.
Tentei adicionar um “botão” enviar por e-mail como função javascript, chamado um método criado na aplicação que usa a macro sc_send_mail.
Ocorre um erro na execução do aplicação, pois ele não reconhece a chamada do método da aplicação dentro do javascript que imprimo.

Abaixo um pequeno exemplo do código:

$html = "<table> ........... conteúdo <input type='button' id='bt-email' onclick='enviarEmail()' value=' Enviar E-mail " /> </table> function enviarEmail() { doEnviarEmail() ----> aqui é um método PHP da aplicação }

Pois bem, ao executar a aplicação dá erro fatal informando que “doEnviarEmail” não existe!

Alguém sabe como posso fazer para conseguir executar um método PHP neste contexto.

Eu acho que consegui explicar o problema.

Desde já agradeço…

Marcelo

o seu codigo esta com problema de aspas… da uma revisao…

Pessanha, valeu.
Mas o código no SC está correto é apenas um exemplo.

Somente via ajax vai conseguir.

E como seria o comando para ser utilizado no método JavaScript para chamar um método PHP?

Bom dia,
Tem que analisar vários fatores para poder executar esse processo.

Primeiro: Agente tem que separar o HTML do PHP, pois oque está aqui no front-end é o HMTL, qualquer coisa que queira trazer para o HTML, tem que ser buscado no servidor PHP, não tem jeito tem que ser assim. Então entra o analise, vai ser preciso eu buscar essa informação no PHP via uma requisição AJAX ou posso fazer uma requisição síncrona normal, com refresh.

Para responder sua pergunta Endrigo, não tem um comando, e sim um processo que tem que ser feito, para executar um método PHP tem que ser feito um AJAX requisitando a pagina.php que contem o método, passar os parâmetros, assim o PHP vai executar o método no servidor, então se pega o retorno do servidor pelo AJAX e exibe-o no HTML.

Se precisar de uma resposta mais concreta, poste sua necessidade que talvez tenhamos uma solução de imediato.

  1. Crie um campo do tipo checkbox.
  2. crie um evento ajax para esse campo do tipo onclick
  3. no evento ajax onclick deste campo execute o seu método php
  4. no seu javascript execute: do_ajax_NOME-APLICAÇÃO_event_NOME-CAMPO-CHECKBOX_onclick()
  5. esconda o campo checkbox

Veja exemplo em :

Item: Confirmação Ajax.

http://infinitusweb.net.br/pluginsc/7/

Haroldo, tinha visto em outro tópico postagens sua e do Alexandre, e fiz exatamente dessa forma, e aproveitei o aprendizado que tive com o Almeida sobre a criação de objetos HTML em campo Label e fiz um botão que aciona em seu OnClick a função do OnClick do CheckBox que fica oculto, assim como você explicou, e ficou espetacular.

Para o que eu precisava ficou perfeito, pois é para gravar informações já validadas do formulário no banco e limpar o conteúdo dos mesmos (mandei limpar na mão, claro, sem refresh na tela), agora te questiono, sobre a questão de capturar uma resposta do processamento, é da mesma forma ou teria que mudar alguma coisa?

No mesmo exemplo eu capturo o retorno do método php com ajax.

Certo, vou fazer testes quando chegar na parte de transferência de caixa. Valeu.

@InfinitusWeb o link acima esta quebrado, vc pode corrigi-lo por favor?

2013, meus links costumam ficar no ar pode tempo determinado.

este:

(http://infinitusweb.net.br/pluginsc/7/)http://infinitusweb.net.br/pluginsc/7/

É como eu disse, meus links costumam ficar disponíveis por tempo determinado.
Esse exemplo foi feito em versão antiga do SC em 2013, não esta mais disponível.

O exemplo explica como executar métodos php através do javascript.
Minhas sugestão é capturar o nome de um evento ajax e chama-lo diretamente por uma função ou evento javascript. dentro desse evento ajax chama-se o método javascript.

mas pesquisando aqui achei a app que demonstro no exemplo:

https://v9.infinitusweb.com.br/forum_sc/confirma_ajax/

@InfinitusWeb Agradeço muito pela sua atenção e peço desculpas pela minha má leitura. Mais uma vez seus conselhos foram produtivos e obtive os resultados desejados. Ainda assim quero solicitar uma complementação, agora preciso enviar um valor para concluir o processamento no evento ajax, porém somente posso criar uma variável de entrada no método. Visto que o evento ajax está entre a função e o método PHP, como posso enviar um valor para ser processado no método ou no evento ajax para concluir a minha execução?

Aí, você pode antes de escutar o evento ajax onclick do Scriptcase, executar um script php via ajax (usandojquery) e nesse script phpvc joga o valor em sessão php, facilmente capturado pelo evento ajax do scriptcase.

Uso isso para contornar a velha falha das aplicações grid que não passam para o evento onclick valores de campos que estão na instrução select principal da aplicação.

Me diga em que tipo de aplicação e em que circunstâncias deseja tal ação, para que eu possa, resumidamente lhe dar uma orientação.

Estou usando um formulário, dentro dele utilizo uma Label para exibir um iframe com conteúdo de uma blank. acontece que preciso utilizar um link dentro do form, não na barra de ferramentas, para alterar o conteúdo da blank dinâmicamente. Eu estava utilizando campo SELECT, e estava perfeito o funcionamento, mas a pedido preciso alterar para um link ou algo que eu possa utilizar CSS para alterar a aparência.

Resumindo: em um form, utilizo um link para enviar um valor que será processado no método PHP que por sua vez irá alterar a página BLANK exibida em um iframe.

você recarrega a blank pelo método php que está no form?

Não vejo a necessidade da blank em iframe aí. O próprio método php pode gerar o html resultante e escrever esse html um campo sc do tipo label dentro do formulário.

Fiz dessa forma por questão de organização mesmo, ia ficar um código muito grande. mas de qualquer forma, mesmo no método PHP, preciso receber nele o valor para processar a informação e gerar o código. de ambas as formas preciso fazer esse envio. Mas pela sua primeira explicação pensei em algo que estou testando, até o momento deu certo o envio via $_GET com md5, assim que concluir se der certo eu posto o resultado.

Aqui segue um resumo de como eu faço:

Em execução a app do código acima:

http://bit.ly/336vKZ3

O exemplo demonstra uma consulta com um funcionamento tipo dfrun, mas que não perde a marcação ao navegar. Uma coluna ao marcar já salva no banco de dados direto no click, a outra salva em memória a marcação e clicar no botão da barra de ferramentas mostrar e salvar, faz o salvamento de todos os itens marcados.
Demonstra também uma troca de imagem dinâmica.

TAGS: HAROLDO, GRID, CONSULTA, ONCLICK, AJAX, DINÂMICO, DFRUN, NAVEGAÇÃO.