Beste svaret
Ingen PHP er backend-serverkode her er en flott forklaring fra stackexchange
Forstå først at du har tre språk som jobber sammen.
- PHP: Kjøres bare av serveren og svarer på forespørsler som å klikke på en lenke (GET) eller sende inn et skjema (POST).
- HTML og JavaScript: Kjøres bare i noens nettleser (unntatt NodeJS).
Jeg antar at filen ser ut som :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Fordi PHP bare svarer på forespørsler (GET, POST, PUT, PATCH og DELETE via $ \_REQUEST), slik må du kjøre en PHP-funksjon selv om de er i samme fil. Dette gir deg et sikkerhetsnivå, "Skal jeg kjøre dette skriptet for denne brukeren eller ikke?".
Hvis du ikke vil oppdatere siden, kan du sende en forespørsel til PHP uten å oppdatere via en metode som heter Asynchronous JavaScript and XML (AJAX).
Det er noe du kan slå opp på YouTube skjønt. Bare søk "jquery ajax"
Full lenke til sitering:
Utfør PHP-funksjon med onClick
Svar
Den beste måten å gjøre dette på ville være å avsløre PHP-funksjonen din via en kontroller på server-appen din. Javascript kan da kalle metoden ved hjelp av et bibliotek som Axios. Det vil sannsynligvis se ut som dette (Dette er et Laravelish-eksempel):
//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);
}
}
?>
Dette kommer til å fyre av en HTTP-forespørsel til backend på / endepunkt, som ruteren din skal rute til `ThingController @ show`-metoden, som vil returnere dataene som er lastet inn fra databasen, eller hvilke data du vil at den skal passere.
Dette kommer til å returnere dataene fra samtalen som skal behandles av JS etter eget skjønn.