Solución:
Primero, comprenda que tiene tres idiomas trabajando juntos:
-
PHP: solo lo ejecuta el servidor y responde a solicitudes como hacer clic en un enlace (GET) o enviar un formulario (POST).
-
HTML y JavaScript: solo se ejecuta en el navegador de alguien (excluyendo NodeJS).
Supongo que su archivo se parece a:
<!DOCTYPE HTML>
<html>
<?php
function runMyFunction() {
echo 'I just ran a php function';
}
if (isset($_GET['hello'])) {
runMyFunction();
}
?>
Hello there!
<a href="https://foroayuda.es/index.php?hello=true">Run PHP Function</a>
</html>
Debido a que PHP solo responde a las solicitudes (GET, POST, PUT, PATCH y DELETE a través de $ _REQUEST), así es como debe ejecutar una función PHP aunque estén en el mismo archivo. Esto le brinda un nivel de seguridad, “¿Debo ejecutar este script para este usuario o no?”.
Si no desea actualizar la página, puede realizar una solicitud a PHP sin actualizar mediante un método llamado Asynchronous JavaScript and XML (AJAX).
Sin embargo, eso es algo que puedes buscar en YouTube. Solo busca “jquery ajax”
Recomiendo Laravel a cualquier persona nueva para comenzar bien: http://laravel.com/
En javascript, crea una función ajax,
function myAjax() {
$.ajax({
type: "POST",
url: 'your_url/ajax.php',
data:{action:'call_this'},
success:function(html) {
alert(html);
}
});
}
Luego llama desde html,
<a href="" onclick="myAjax()" class="deletebtn">Delete</a>
Y en tu ajax.php,
if($_POST['action'] == 'call_this') {
// call removeday() here
}
Tendrás que hacer esto a través de AJAX. Te recomiendo ENCARECIDAMENTE que utilices jQuery para que esto sea más fácil para ti …
$("#idOfElement").on('click', function(){
$.ajax({
url: 'pathToPhpFile.php',
dataType: 'json',
success: function(data){
//data returned from php
}
});
)};
http://api.jquery.com/jQuery.ajax/