Esegui una function PHP al clic del button?

Voglio eseguire una function PHP con un clic del button HTML.

Posso call uno script PHP in questo modo:

<form action="action.php" method="post"> Name: <input type="text" name="txt"/> <input type="submit" /> </form> 

Ma non voglio invocare "action.php". Voglio solo call la function PHP che ho definito in questa pagina. Può essere fatto?

Il metodo che preferisco usare è un misto di jQuery / ajax che chiama una class PHP Object Oriented.

Ho un ascoltatore / trigger jQuery per la pressione del button con qualcosa del genere:

 $('#buttonId').live('click', function() { $.get('api.php?functionName=test&inputvar=something'); return false; }); 

Questo chiamerà il file api.php attraverso ajax e impedirà each ulteriore azione, come l'invio di moduli.

Quindi nel file PHP puoi sempre fare qualcosa di base come:

 if ($_REQUEST['functionName'] == 'test') { test(); } 

oppure se hai classi enormi e molti input dinamici potresti fare qualcosa di più interessante come:

 $functionName = $_REQUEST['functionName']; if (method_exists($myClassInstance, $functionName)) $myClassInstance->$functionName(); 

Ci sono molti modi per avvicinarsi a questo, ma questi sono i miei preferiti. Un'altra alternativa è il framework Extjs che è stato costruito per questo tipo di attività, ma se non si ha già familiarità con esso e il progetto non è "enorme" non mi preoccuperei di esso.

Infine, se hai bisogno di get una risposta dal file php come i risultati JSON, allora invece di usare la function jQuery: $.get() , usa la function $.getJSON

Spero possa aiutare 🙂

Devi farlo da capo. Elabora il post e chiama la function nella pagina di action.php da solo. Puoi anche creare una pagina php separata per call una function definita in action.php.

Potresti farlo facilmente con jquery

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript"> function submitform(){ $('#myForm').post("pageName.php", $("#myForm").serialize()); } </script> </head> <form action="pageName.php" method="post" id"myForm"> Name: <input type="text" name="txt"/> <input type="submit" /> </form> 

Questo non functionrà. PHP ha praticamente finito l'elaborazione nel momento in cui l'utente gestisce la pagina. Dovresti usare AJAX per submit i dati al server e recuperare la risposta.

Puoi avere i seguenti approcci:

1> Usa AJAX per caricare "action.php" con i dati inseriti nei campi come POST alla pagina e poi prendi la risposta e inseriscila nel corpo; o,

2> Non puoi farlo funzionare in quanto PHP è un linguaggio di programmazione lato server e HTML che stai cercando di usare con PHP è un linguaggio di programmazione lato client. Quindi non c'è modo di farlo funzionare a parte AJAX.

Questo è un po 'complicato. È ansible submit il module a se stesso, verificare se la variabile del post è impostata (se lo è, quindi la pagina viene eseguita perché il module è stato inviato ad esso), oppure è ansible utilizzare ajax. Il primo è una soluzione più semplice e il secondo non richiede il ricaricamento di una pagina. Scegli il tuo veleno 😉

Guarda questo per la prima soluzione, e guarda le funzioni ajax di jQuery per il secondo.

Dovresti includere a.php In action.php, ad esempio:

action.php:

 include( 'a.php' ); //Your codes 

se vuoi ad esempio la function ok () in a.php, ora esiste a.php in action.php

Potresti provare:

 <form action="pageName.php/functionName" method="post"> Name: <input type="text" name="txt"/> <input type="submit" /> </form>