Sto cercando una soluzione semplice per chiamare una funzione PHP solo quando un tag viene cliccato.
PHP:
function removeday() { ... }
HTML:
<a href="" onclick="removeday()" class="deletebtn">Delete</a>
Aggiornamento: il codice html e PHP sono nello stesso file PHP
Prima di tutto, capite che avete tre lingue che lavorano insieme:
PHP: Viene eseguito solo dal server e risponde a richieste come cliccare su un link (GET) o inviare un modulo (POST).
HTML & JavaScript: Viene eseguito solo nel browser di qualcuno (escluso NodeJS).
Presumo che il tuo file assomigli a qualcosa come:
<!DOCTYPE HTML>
<html>
<?php
function runMyFunction() {
echo 'I just ran a php function';
}
if (isset($_GET['hello'])) {
runMyFunction();
}
?>
Hello there!
<a href='index.php?hello=true'>Run PHP Function</a>
</html>
Poiché PHP risponde solo alle richieste (GET, POST, PUT, PATCH e DELETE tramite $_REQUEST), è così che devi eseguire una funzione PHP anche se sono nello stesso file. Questo vi dà un livello di sicurezza, "Devo eseguire questo script per questo utente o no?
Se non vuoi aggiornare la pagina, puoi fare una richiesta a PHP senza aggiornare tramite un metodo chiamato Asynchronous JavaScript and XML (AJAX).
Questo è qualcosa che puoi cercare su YouTube. Basta cercare "jquery ajax"
Consiglio Laravel a chiunque sia nuovo per iniziare bene: http://laravel.com/
In javascript, fate una funzione ajax,
function myAjax() {
$.ajax({
type: "POST",
url: 'your_url/ajax.php',
data:{action:'call_this'},
success:function(html) {
alert(html);
}
});
}
Poi chiama dall'html,
<a href="" onclick="myAjax()" class="deletebtn">Delete</a>
E nel tuo ajax.php,
if($_POST['action'] == 'call_this') {
// call removeday() here
}
Dovrete farlo tramite AJAX. Vi consiglio caldamente di usare jQuery per rendere questo più facile per voi....
$("#idOfElement").on('click', function(){
$.ajax({
url: 'pathToPhpFile.php',
dataType: 'json',
success: function(data){
//data returned from php
}
});
)};