Как вызвать функцию PHP при нажатии кнопки

Я новичок в PHP и только начал изучать основы этого языка.

Я создал страницу под названием functioncalling.php, которая содержит две кнопки: «Отправить» и «Вставить». Как новичок в PHP, я хочу проверить, какая функция выполняется при нажатии кнопки. Я хочу, чтобы вывод отображался на той же странице. Поэтому я создал две функции, по одной для каждой кнопки. Исходный код функции functioncalling.php выглядит следующим образом:

<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."; } ?> 

Проблема здесь в том, что я не получаю никакого результата после нажатия любой из кнопок.

Может кто-нибудь, пожалуйста, скажите мне, где именно я ошибаюсь? Ответы как можно скорее будут оценены. Заранее спасибо.

Нажатие кнопки – это client side тогда как PHP – server side , но вы можете добиться этого, используя ajax

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

В вашем php-файле:

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

Да, вам нужен аякс. Для получения более подробной информации см. Приведенный ниже код.

Измените свою разметку следующим образом:

 <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"); }); }); }); 

В 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; } ?> 

вы не можете вызывать функции php, например, щелчок по кнопке из HTML. потому что HTML находится на стороне клиента, а PHP работает на стороне сервера.

Либо вам нужно использовать какой-либо Ajax, либо сделать это как в приведенном ниже фрагменте кода.

 <?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."; } ?>. 

Вы должны опубликовать свои данные формы, а затем проверить соответствующую кнопку, которая нажата.

Чтобы показать $ message на вашем входе:

  <?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> 

Чтобы использовать functioncalling.php в качестве внешнего файла, вы должны каким-либо образом включить его в свой html-документ

Попробуй это:

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

Вы можете написать так в javascript или jquery ajax и вызвать файл

 $('#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 } } ?> 

Вы должны заставить кнопку вызывать одну и ту же страницу и в разделе PHP проверить, была ли нажата кнопка:

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 } ?> 

Я застрял в этом, и я решил это с помощью Скрытого поля

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

в ценности вы можете добавить все, что хотите добавить

в test.php вы можете получить значение через $ _Post [ID]

Атрибут onclick в HTML вызывает функции Javascript, а не функции PHP.

Используйте рекурсивный вызов, который вызывает действие формы. Затем добавьте PHP-код в ту же форму, чтобы поймать его. В foo.php ваша форма вызовет foo.php в post

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

Как только форма будет отправлена, она будет называть себя ( foo.php ), и вы можете поймать ее через предопределенную переменную PHP $_SERVER как показано в приведенном ниже коде

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

Вот пример, который вы можете использовать:

 <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"; } ?> 

Я не уверен, что php попробует просто

 <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> 
 <input type="button" name="insert" value="insert" onclick="insert()" /> <input type="button" name="select" value="select" onclick="select()" /> 

Измените свое на это, оно должно работать.