Melhor resposta
Nenhum PHP é código de servidor backend aqui está uma ótima explicação de stackexchange
Primeiro, entenda que você tem três linguagens trabalhando juntas.
- PHP: só é executado pelo servidor e responde a solicitações como clicar em um link (GET) ou enviar um formulário (POST).
- HTML e JavaScript: só é executado no navegador de alguém (excluindo NodeJS).
Estou presumindo que seu arquivo se parece com algo assim :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Porque o PHP só responde a solicitações (GET, POST, PUT, PATCH e DELETE via $ \_REQUEST), é assim que você deve executar uma função PHP mesmo que eles estejam no mesmo arquivo. Isso dá a você um nível de segurança, "Devo executar este script para este usuário ou não?".
Se você não quiser atualizar a página, pode fazer uma solicitação ao PHP sem atualizar via um método chamado Asynchronous JavaScript and XML (AJAX).
Isso é algo que você pode pesquisar no YouTube. Basta pesquisar "jquery ajax"
Link completo para citação:
Execute a função PHP com onClick
Resposta
A melhor maneira de fazer isso seria expor sua função PHP por meio de um controlador em seu aplicativo do lado do servidor. O Javascript pode então chamar o método usando uma biblioteca como Axios. Provavelmente seria algo assim (Este é um exemplo Laravelish):
//HTML
//JS
var handleClick = function(event) {
axios.get("/endpoint, {
params: {ID: 1234}
})
.then(function(response) {
});
};
//PHP
namespace \App\Http\Controlllers;
use \App\Thing;
use \App\Http\Controllers\Controller;
class ThingController extends Controller
{
public function show($id)
{
return Thing::find($id);
}
}
?>
Este irá disparar uma solicitação HTTP para o back-end em / endpoint, que seu roteador deve rotear para o método `ThingController @ show`, que retornará os dados carregados do banco de dados, ou quaisquer dados que você deseja que eles transmitam.
Isso retornará os dados da chamada para serem processados por seu JS conforme você achar necessário.