Execute a function PHP no botão do botão html

Eu preciso executar alguma function PHP quando um botão é clicado. Eu sei que isso não é suposto ser o uso do php, em vez disso js deve fazê-lo, mas o que minhas funções estão fazendo na coleta de dados de um servidor quando o usuário o pede. Especificamente, obtém alguns dados do usuário e o escreve para um arquivo, e o usuário deve decidir quais dados serão reunidos.
Como posso fazer isso? Eu vi o post Executar o arquivo PHP no botão Clique, mas ainda não estou certo de como usá-lo.
Estou aprendendo, então por favor não seja tão áspero

Eu tentei onclick() e todo tipo de coisas, mas não levou a nada útil

Um arquivo php é executado sempre que você acessá-lo através de uma solicitação HTTP, seja GET, POST, PUT.

Você pode usar JQuery / Ajax para enviar uma solicitação em um clique do botão, ou até mesmo mudar a URL do navegador para navegar até o endereço php.

Dependendo dos dados enviados no POST / GET, você pode ter uma declaração de mudança executando uma function diferente.

Especificando a function via GET

Você pode utilizar o código aqui: Como chamar a function PHP da string armazenada em uma Variável, juntamente com uma instrução switch para chamar automaticamente a function apropriada dependendo dos dados enviados.

Então, no lado do PHP, você pode ter algo assim:

 < ?php //see http://php.net/manual/en/function.call-user-func-array.php how to use extensively if(isset($_GET['runFunction']) && function_exists($_GET['runFunction'])) call_user_func($_GET['runFunction']); else echo "Function not found or wrong input"; function test() { echo("test"); } function hello() { echo("hello"); } ?> 

e você pode fazer o pedido de obtenção mais simples usando a barra de endereços como teste:

 http://127.0.0.1/test.php?runFunction=hellodddddd 

resulta em:

 Function not found or wrong input http://127.0.0.1/test.php?runFunction=hello 

resulta em:

 hello 

Enviando dados

Obter solicitação via JQuery

Veja: http://api.jquery.com/jQuery.get/

 $.get("test.cgi", { name: "John"}) .done(function(data) { alert("Data Loaded: " + data); }); 

Pedido POST via JQuery

Veja: http://api.jquery.com/jQuery.post/

 $.post("test.php", { name: "John"} ); 

Obter solicitação via localização do Javascript

Veja: http://www.javascripter.net/faq/buttonli.htm

  

Reading the Data (PHP)

Veja PHP Turotial para ler postagem e obter: http://www.tizag.com/phpT/postget.php

Links Úteis

http://php.net/manual/en/function.call-user-func.php http://php.net/manual/en/function.function-exists.php

Se você deseja fazer uma solicitação de servidor, use o AJAX para que você possa enviar seus parâmetros desejados para o servidor e pode executar o que quiser com esses parâmetros.

Exemplo com javascript puro:

    

Exemplo com jQuery Ajax: http://api.jquery.com/jQuery.ajax/

 $.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" } }).done(function( msg ) { alert( "Data Saved: " + msg ); }); 

Você pode ter um arquivo com funções chamadas para exemplo functions.php

functions.php

 < ?php myFunction($Name, $Location) { // etc... } myFunction2() { } // ... many functions ?> 

Some.php

 < ?php include("functions.php"); $Name = $_POST['name']; $Location = $_POST['location']; myFunction($Name, $Location); // make what you want with these variables...?> 

Use ajax, um exemplo simples,

HTML

  

Javascript

 var button = document.getElementById("button"); button.addEventListener("click" ajaxFunction, false); var ajaxFunction = function () { // ajax code here } 

Alternativamente, olhe para jquery ajax http://api.jquery.com/jQuery.ajax/

 < ?php if (isset($_POST['str'])){ function printme($str){ echo $str; } printme("{$_POST['str']}"); } ?> 

Use um pedido AJAX no seu arquivo PHP e, em seguida, exiba o resultado em sua página, sem recarregamento.

http://api.jquery.com/load/ Esta é uma solução simples se você não precisa de nenhum dado POST.

Depende da function que você deseja executar. Se você precisar de algo feito no lado do servidor, como consultar um database ou configurar algo na session ou qualquer coisa que não possa ser feita no lado do cliente, você precisa do AJAX, senão você pode fazê-lo no lado do cliente com o JavaScript. Não faça o servidor funcionar quando você pode fazer o que precisa fazer no lado do cliente.

jQuery fornece uma maneira fácil de fazer o ajax: http://api.jquery.com/jQuery.ajax/