Bedste svar
Ingen PHP er backend-serverkode her er en god forklaring fra stackexchange
Forstå først, at du har tre sprog, der arbejder sammen.
- PHP: Køres kun af serveren og svarer på anmodninger som at klikke på et link (GET) eller indsendelse en formular (POST).
- HTML & JavaScript: Køres kun i en persons browser (undtagen NodeJS).
Jeg antager, at din fil ligner noget :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Fordi PHP kun svarer på anmodninger (GET, POST, PUT, PATCH og SLET via $ \_REQUEST), sådan skal du køre en PHP-funktion, selvom de er i den samme fil. Dette giver dig et sikkerhedsniveau, "Skal jeg køre dette script til denne bruger eller ej?".
Hvis du ikke ønsker at opdatere siden, kan du indgive en anmodning til PHP uden at blive opdateret via en metode kaldet Asynchronous JavaScript and XML (AJAX).
Det er dog noget, du kan slå op på YouTube. Søg bare efter "jquery ajax"
Fuldt link til citat:
Udfør PHP-funktion med onClick
Svar
Den bedste måde at gøre dette på er at udsætte din PHP-funktion via en controller på din serverside-app. Javascript kan derefter kalde metoden ved hjælp af et bibliotek som Axios. Det vil sandsynligvis se sådan ud (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 vil affyre en HTTP-anmodning til backend ved / slutpunkt, som din router skal rute til ThingController @ show-metoden, som returnerer de data, der er indlæst fra databasen, eller hvilke data du vil have den til at videregive.
Dette returnerer dataene fra opkaldet, der skal behandles af din JS, som du finder passende.