Beste Antwort
Kein PHP ist Backend-Servercode. Hier ist eine gute Erklärung von Stackexchange
Verstehen Sie zunächst, dass drei Sprachen zusammenarbeiten.
- PHP: Wird nur vom Server ausgeführt und reagiert auf Anfragen wie das Klicken auf einen Link (GET) oder das Senden ein Formular (POST).
- HTML & JavaScript: Wird nur im Browser einer anderen Person ausgeführt (ausgenommen NodeJS).
Ich gehe davon aus, dass Ihre Datei ungefähr so aussieht :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Da PHP nur auf Anfragen reagiert (GET, POST, PUT, PATCH und DELETE über $ \_REQUEST). Auf diese Weise müssen Sie eine PHP-Funktion ausführen, obwohl sie sich in derselben Datei befinden. Dies gibt Ihnen eine Sicherheitsstufe: "Soll ich dieses Skript für diesen Benutzer ausführen oder nicht?".
Wenn Sie die Seite nicht aktualisieren möchten, können Sie eine Anfrage an PHP stellen, ohne über zu aktualisieren Eine Methode namens Asynchrones JavaScript und XML (AJAX).
Das können Sie jedoch auf YouTube nachschlagen. Suchen Sie einfach nach "jquery ajax"
Vollständiger Link zum Zitat:
Führen Sie die PHP-Funktion mit onClick aus
Antwort
Der beste Weg, dies zu tun, ist das Belichten Ihre PHP-Funktion über einen Controller in Ihrer serverseitigen App. Das Javascript kann die Methode dann mithilfe einer Bibliothek wie Axios aufrufen. Sie würde wahrscheinlich ungefähr so aussehen (dies ist ein Laravelish-Beispiel):
//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);
}
}
?>
Dies wird eine HTTP-Anforderung an das Backend am / endpoint auslösen, die Ihr Router an die Methode "ThingController @ show" weiterleiten soll, die die aus der Datenbank geladenen Daten oder die Daten zurückgibt, die Sie weitergeben möchten.
Hiermit werden die Daten aus dem Aufruf zurückgegeben, die von Ihrem JS nach eigenem Ermessen verarbeitet werden sollen.