如何在单击按钮上调用PHP函数

时间:2013-12-23 06:47:19

标签: php html forms button

我是PHP的新手,刚刚开始学习这门语言的基础知识。

我创建了一个名为functioncalling.php的页面,其中包含两个按钮:Submit和Insert。作为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.";
}
?>

这里的问题是在点击任何按钮后我没有得到任何输出。

任何人都可以告诉我我哪里错了?最早的回复将受到高度赞赏。提前谢谢。

12 个答案:

答案 0 :(得分:69)

是的,你需要ajax。有关详细信息,请参阅以下代码。

像这样更改您的标记

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

答案 1 :(得分:54)

按钮单击为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
}
 ?>

答案 2 :(得分:15)

你不能像点击HTML中的按钮那样调用php函数。因为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.";
    }

?>.

您必须发布表单数据,然后检查单击的相应按钮。

答案 3 :(得分:12)

在输入中显示$ 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文档中

答案 4 :(得分:8)

试试这个:

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

答案 5 :(得分:7)

你可以在javascript或jquery ajax中这样写,并调用文件

&#13;
&#13;
$('#btn').click(function(){

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

    }
  });

})
&#13;
<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

}
}
?>
&#13;
&#13;
&#13;

答案 6 :(得分:3)

HTML中的onclick属性调用Javascript函数,而不是PHP函数。

答案 7 :(得分:3)

使用表单操作调用自身的递归调用。然后以相同的形式添加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>

答案 8 :(得分:3)

我被困在这里,我用隐藏的场地解决了它

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

在值中,您可以添加任何想要添加的内容

在test.php中,您可以通过$ _Post [ID]

检索值

答案 9 :(得分:2)

以下是您可以使用的示例:

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

答案 10 :(得分:1)

您可以简单地做到这一点。在php中,您可以通过使用

确定按钮单击
if(isset($_Post['button_tag_name']){
echo "Button Clicked";
}

因此,您应该按以下方式修改代码:


<?php

if(isset($_Post['select']){
 echo "select button clicked and select method should be executed";
}
if(isset($_Post['insert']){
 echo "insert button clicked and insert method should be executed";
}
           
        ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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>

<script>
//This will be processed on the client side
function insert(){
  window.alert("You click insert button");
}

function select(){
  window.alert("You click insert button");
}
</script>
</body>
</html>


        

答案 11 :(得分:0)

使用HTML按钮调用PHP函数:创建一个包含HTML按钮的HTML表单文档。单击按钮后,将调用POST方法。 POST方法描述了如何将数据发送到服务器。单击按钮后,将调用array_key_exists()函数。

<?php
    if(array_key_exists('button1', $_POST)) { 
        button1(); 
    } 
    else if(array_key_exists('button2', $_POST)) { 
        button2(); 
    } 
    function button1() { 
        echo "This is Button1 that is selected"; 
    } 
    function button2() { 
        echo "This is Button2 that is selected"; 
    } 
?> 

<form method="post"> 
    <input type="submit" name="button1" class="button" value="Button1" /> 
    <input type="submit" name="button2" class="button" value="Button2" /> 
</form> 

来源:geeksforgeeks.org