una puede llamar hacer función funcion formulario ejecutarse ejecutar desde botón boton php html forms button

puede - Cómo llamar a una función PHP al hacer clic en un botón



onclick php javascript (13)

Soy un novato en PHP y acabo de comenzar a aprender los conceptos básicos de este lenguaje.

He creado una página llamada functioncalling.php que contiene dos botones, Enviar e Insertar. Como principiante en PHP, quiero probar qué función se ejecuta cuando se hace clic en un botón. Quiero que la salida esté en la misma página. Así que creé dos funciones, una para cada botón. El código fuente de functioncalling.php es el siguiente:

<html> <body> <form action="functioncalling.php"> <input type="text" name="txt" /> <input type="submit" name="insert" value="insert" onclick="insert()" /> <input type="submit" name="select" value="select" onclick="select()" /> </form> <?php function select(){ echo "The select function is called."; } function insert(){ echo "The insert function is called."; } ?>

El problema aquí es que no obtengo ninguna salida después de hacer clic en ninguno de los botones.

¿Puede alguien decirme por favor exactamente dónde me estoy equivocando? Las respuestas, como muy pronto, serán muy apreciadas. Gracias de antemano.


Aquí hay un ejemplo que puedes usar:

<html> <body> <form action="btnclick.php" method="get"> <input type="submit" name="on" value="on"> <input type="submit" name="off" value="off"> </form> </body> </html> <?php if(isset($_GET[''on''])) { onFunc(); } if(isset($_GET[''off''])) { offFunc(); } function onFunc(){ echo "Button on Clicked"; } function offFunc(){ echo "Button off clicked"; } ?>


Debes hacer que el botón llame a la misma página y en una sección de PHP verificar si se presionó el botón:

HTML:

<form action="theSamePage.php" method="post"> <input type="submit" name="someAction" value="GO" /> </form>

PHP:

<?php if($_SERVER[''REQUEST_METHOD''] == "POST" and isset($_POST[''someAction''])) { func(); } function func() { // do stuff } ?>


El atributo onclick en HTML llama a las funciones de Javascript, no a las funciones de PHP.


El clic del botón es del client side mientras que PHP está del server side , pero puede lograrlo utilizando ajax

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

En tu archivo php:

<?php function abc($name){ //your code here } ?>


Estaba atrapado en esto y lo resolví con el campo Oculto

<form method="post" action="test.php"> <input type="hidden" name="ID" value""> </form>

en valor puede agregar lo que quiera agregar

en test.php puedes recuperar el valor a través de $ _Post [ID]


No estoy seguro de que php intente solo

<html> <head> <script> function insert() { document.getElementById("demo").innerHTML="The insert function is called"; } function select() { document.getElementById("demo").innerHTML="The select function is called."; } </script> </head> <body> <form> <input type="text" name="txt" /> <input type="button" name="insert" value="insert" onclick="insert()" /> <input type="button" name="select" value="select" onclick="select()" /> </form> <p id="demo"></p> </body> </html>


Para mostrar $ mensaje en su entrada:

<?php if(isset($_POST[''insert''])){ $message= "The insert function is called."; } if(isset($_POST[''select''])){ $message="The select function is called."; } ?> <form method="post"> <input type="text" name="txt" value="<?php if(isset($message)){ echo $message;}?>" > <input type="submit" name="insert" value="insert"> <input type="submit" name="select" value="select" > </form>

Para usar functioncalling.php como archivo externo, debe incluirlo de alguna manera en su documento html


Prueba esto:

if($_POST[''select''] and $_SERVER[''REQUEST_METHOD''] == "POST"){ select(); } if($_POST[''insert''] and $_SERVER[''REQUEST_METHOD''] == "POST"){ insert(); }


Puedes escribir así en javascript o jquery ajax y llamar al archivo

$(''#btn'').click(function(){ $.ajax({ url:''test.php?call=true'', type:''GET'', success:function(data){ body.append(data); } }); })

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script> <form method=''get'' > <input type="button" id="btn" value="click"> </form> <?php if(isset($_GET[''call''])){ function anyfunction(){ echo "added"; // your funtion code } } ?>


Sí, necesitas ajax aquí. Por favor refiérase al código a continuación para más detalles.

Cambia tu marcado como este

<input type="submit" class="button" name="insert" value="insert" /> <input type="submit" class="button" name="select" value="select" />

jQuery: -

$(document).ready(function(){ $(''.button'').click(function(){ var clickBtnValue = $(this).val(); var ajaxurl = ''ajax.php'', data = {''action'': clickBtnValue}; $.post(ajaxurl, data, function (response) { // Response div goes here. alert("action performed successfully"); }); }); });

En ajax.php

<?php if (isset($_POST[''action''])) { switch ($_POST[''action'']) { case ''insert'': insert(); break; case ''select'': select(); break; } } function select() { echo "The select function is called."; exit; } function insert() { echo "The insert function is called."; exit; } ?>


Use una llamada recursiva donde la acción de formulario se llama a sí misma. Luego agrega el código PHP en la misma forma para atraparlo. En foo.php tu formulario llamará a foo.php en la post

<html> <body> <form action="foo.php" method="post">

Una vez que se haya enviado el formulario, se llamará a sí mismo ( foo.php ) y podrá capturarlo a través de la variable predefinida PHP $_SERVER como se muestra en el siguiente código

<?php if ($_SERVER[''REQUEST_METHOD''] == ''POST'') { echo "caught post"; } ?> </form> </body> </html>


no puede llamar a las funciones de php como hacer clic en un botón de HTML. porque HTML está en el lado del cliente mientras que PHP se ejecuta en el lado del servidor.

O necesita usar algo de Ajax o hacerlo como en el siguiente fragmento de código.

<?php if($_GET){ if(isset($_GET[''insert''])){ insert(); }elseif(isset($_GET[''select''])){ select(); } } function select() { echo "The select function is called."; } function insert() { echo "The insert function is called."; } ?>.

Debe publicar los datos de su formulario y luego verificar el botón apropiado al que se hace clic.


<input type="button" name="insert" value="insert" onclick="insert()" /> <input type="button" name="select" value="select" onclick="select()" />

Cambia el tuyo a esto, debería funcionar.