Beste antwoord
Geen PHP is backend-servercode, hier is een geweldige uitleg van stackexchange
Begrijp ten eerste dat er drie talen samenwerken.
- PHP: wordt alleen beheerd door de server en reageert op verzoeken zoals klikken op een link (GET) of indienen een formulier (POST).
- HTML & JavaScript: wordt alleen uitgevoerd in iemands browser (met uitzondering van NodeJS).
Ik ga ervan uit dat uw bestand er ongeveer zo uitziet :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Omdat PHP alleen reageert op verzoeken (GET, POST, PUT, PATCH en DELETE via $ \_REQUEST), dit is hoe je een PHP-functie moet draaien, ook al zitten ze in hetzelfde bestand. Dit geeft je een beveiligingsniveau: "Moet ik dit script voor deze gebruiker uitvoeren of niet?".
Als je de pagina niet wilt vernieuwen, kun je een verzoek indienen bij PHP zonder te vernieuwen via een methode genaamd Asynchrone JavaScript en XML (AJAX).
Dat is iets dat je op YouTube kunt opzoeken. Zoek gewoon naar "jquery ajax"
Volledige link naar citaat:
PHP-functie uitvoeren met onClick
Antwoord
De beste manier om dit te doen is door bloot te stellen je PHP-functie via een controller op je server-side app. De Javascript kan dan de methode aanroepen met een bibliotheek zoals Axios. Het zou er waarschijnlijk ongeveer zo uitzien (dit is een Laravelish-voorbeeld):
//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);
}
}
?>
Dit gaat een HTTP-verzoek afvuren naar de backend op / endpoint, die uw router moet routeren naar de `ThingController @ show` -methode, die de gegevens retourneert die uit de database zijn geladen, of welke gegevens u ook wilt dat deze wordt doorgegeven. / p>
Hiermee worden de gegevens van de oproep geretourneerd om door uw JS naar eigen inzicht te worden verwerkt.