Ejecute la función PHP en el botón html.

Necesito ejecutar alguna función PHP cuando se hace clic en un botón. Sé que esto no se supone que sea el uso de php, más bien js debería hacerlo, pero lo que mis funciones están haciendo al recostackr datos de un servidor cuando el usuario lo pregunta. Específicamente, obtiene algunos datos del usuario y los escribe en un archivo, y el usuario debe decidir qué datos se recostackrán.
¿Cómo puedo hacer esto? Vi la publicación Ejecutar archivo PHP al hacer clic en el botón, pero todavía no estoy seguro de cómo usarlo.
Estoy aprendiendo, así que por favor no seas demasiado duro

He probado onclick() y todo tipo de cosas, pero no condujo a nada útil

Un archivo php se ejecuta cada vez que accede a él a través de una solicitud HTTP, ya sea GET, POST, PUT.

Puede usar JQuery / Ajax para enviar una solicitud con un clic de botón, o incluso simplemente cambiar la URL del navegador para navegar a la dirección php.

Dependiendo de los datos enviados en POST / GET, puede tener una instrucción switch que ejecute una función diferente.

Especificando la función a través de GET

Puede utilizar el código aquí: Cómo llamar a la función PHP desde una cadena almacenada en una Variable junto con una statement de conmutación para llamar automáticamente a la función apropiada según los datos enviados.

Entonces en PHP puede tener algo como esto:

 < ?php //see http://php.net/manual/en/function.call-user-func-array.php how to use extensively if(isset($_GET['runFunction']) && function_exists($_GET['runFunction'])) call_user_func($_GET['runFunction']); else echo "Function not found or wrong input"; function test() { echo("test"); } function hello() { echo("hello"); } ?> 

y puede hacer la solicitud de obtención más simple usando la barra de direcciones como prueba:

 http://127.0.0.1/test.php?runFunction=hellodddddd 

resultados en:

 Function not found or wrong input http://127.0.0.1/test.php?runFunction=hello 

resultados en:

 hello 

Envío de datos

GET Solicitud a través de JQuery

Ver: http://api.jquery.com/jQuery.get/

 $.get("test.cgi", { name: "John"}) .done(function(data) { alert("Data Loaded: " + data); }); 

Solicitud POST a través de JQuery

Ver: http://api.jquery.com/jQuery.post/

 $.post("test.php", { name: "John"} ); 

GET Solicitud a través de la ubicación de Javascript

Ver: http://www.javascripter.net/faq/buttonli.htm

  

Leyendo los datos (PHP)

Consulte PHP Turotial para leer publicaciones y obtener: http://www.tizag.com/phpT/postget.php

Enlaces útiles

http://php.net/manual/en/function.call-user-func.php http://php.net/manual/en/function.function-exists.php

Si desea realizar una solicitud de servidor, debe utilizar AJAX, de modo que puede enviar los parámetros deseados al servidor y puede ejecutar cualquier php que desee con estos parámetros.

Ejemplo con javascript puro:

    

Ejemplo con jQuery Ajax: http://api.jquery.com/jQuery.ajax/

 $.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" } }).done(function( msg ) { alert( "Data Saved: " + msg ); }); 

Puede tener un archivo con funciones llamadas, por ejemplo, functions.php

functions.php

 < ?php myFunction($Name, $Location) { // etc... } myFunction2() { } // ... many functions ?> 

some.php

 < ?php include("functions.php"); $Name = $_POST['name']; $Location = $_POST['location']; myFunction($Name, $Location); // make what you want with these variables...?> 

Usa ajax, un simple ejemplo,

HTML

  

Javascript

 var button = document.getElementById("button"); button.addEventListener("click" ajaxFunction, false); var ajaxFunction = function () { // ajax code here } 

También puede buscar en jquery ajax http://api.jquery.com/jQuery.ajax/

 < ?php if (isset($_POST['str'])){ function printme($str){ echo $str; } printme("{$_POST['str']}"); } ?> 

Use una solicitud AJAX en su archivo PHP, luego muestre el resultado en su página, sin ninguna recarga.

http://api.jquery.com/load/ Esta es una solución simple si no necesita ningún dato de POST.

Depende de qué función desee ejecutar. Si necesita algo hecho en el lado del servidor, como consultar una base de datos o configurar algo en la sesión o cualquier cosa que no se pueda hacer en el lado del cliente, necesita AJAX, de lo contrario puede hacerlo en el lado del cliente con JavaScript. No haga que el servidor funcione cuando puede hacer lo que debe hacer en el lado del cliente.

jQuery proporciona una forma fácil de hacer ajax: http://api.jquery.com/jQuery.ajax/