Cel mai bun răspuns
Niciun PHP nu este cod server de backend aici este o explicație excelentă din stackexchange
Mai întâi, înțelegeți că aveți trei limbi care lucrează împreună.
- PHP: este rulat numai de server și răspunde la solicitări, cum ar fi să faceți clic pe un link (GET) sau să trimiteți un formular (POST).
- HTML și JavaScript: este rulat numai în browserul cuiva (cu excepția NodeJS).
Presupun că fișierul dvs. arată ceva de genul :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Deoarece PHP răspunde doar la solicitări (GET, POST, PUT, PATCH și DELETE prin $ \_REQUEST), așa trebuie să rulați o funcție PHP, chiar dacă acestea sunt în același fișier. Acest lucru vă oferă un nivel de securitate, „Ar trebui să rulez acest script pentru acest utilizator sau nu?”.
Dacă nu doriți să reîmprospătați pagina, puteți face o cerere către PHP fără a actualiza prin o metodă numită Asynchronous JavaScript și XML (AJAX).
Totuși, este ceva ce puteți căuta pe YouTube. Căutați „jquery ajax”
Link complet către citare:
Executați funcția PHP cu onClick
Răspundeți
Cel mai bun mod de a face acest lucru ar fi să expuneți funcția dvs. PHP printr-un controler din aplicația de pe server. Javascript poate apela apoi metoda folosind o bibliotecă precum Axios. Probabil ar arăta cam așa (Acesta este un exemplu 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);
}
}
?>
Aceasta va declanșa o cerere HTTP către backend at / endpoint, pe care routerul dvs. ar trebui să o direcționeze către metoda `ThingController @ show`, care va returna datele încărcate din baza de date sau orice date pe care doriți să le transmită.
Aceasta va returna datele din apel pentru a fi procesate de către JS după cum considerați potrivit.