1. ホーム
  2. php

ボタンの onclick イベントに対する PHP の応答

2022-02-16 13:19:32

PHP is the server-side code , html is the client-side code, and implementing the onclick event of the button is a client-side call to a server-side function, so it has to submit a request to the server.

There is a simple and brutal way to do this, which is to write the php page to be executed directly in the href when the button is an a tag (or by binding window.location to the button and jumping to PHP via JS). This approach would involve designing a PHP code for each button.

Instead, my approach is: event+ajax binds a click event to the button, then executes ajax.



<?php   
    if (isset($_POST['action']))  
    {  
        switch($_POST['action'])  
        {  
            case "btn1":btn1();break;  
            case "btn2":btn2();break;  
            default:break;  
        }  
    }  
      
    function btn1()  
    {  
        echo "hello button1";  
    }  
    function btn2()  
    {  
        echo "hello button2";  
    }  
  
? >  

<html>  
<head>  
    <style>  
    div {width:600px;margin:200px auto;}  
      
    .btn {  
        background-color:#44c767;  
        -moz-border-radius:28px;  
        -webkit-border-radius:28px;  
        border-radius:28px;  
        border:1px solid #18ab29;  
        display:inline-block;  
        cursor:pointer;  
        color:#ffffff;  
        font-family:Arial;  
        font-size:17px;  
        padding:16px 31px;  
        text-decoration:none;  
        text-shadow:0px 1px 0px #2f6627;  
    }  
    .btn:hover {  
        background-color:#5cbf2a;  
    }  
    .btn:active {  
        position:relative;  
        top:1px;  
    }  
      
    #btn2 {float:right;}  
      
    </style>  
      
    <script type="text/javascript" language="javascript" src="jquery.js"></script>  
    <script type="text/javascript" language="javascript">  
        function fun(n) {  
            $.ajax({  
                url:"server.php", //the page containing php script  
                type: "POST", //request type  
                data:{action: n.value},  
                success:function(result){  
                    alert(result);  
                }  
            });  
        }  
          
        function fun2(n) {  
            var url = "server.php";  
            var data = {  
                action : n.value  
            };  
            jQuery.post(url, data, callback);  
        }  
        function callback(data) {  
            alert(data);  
        }  
    </script>  
</head>  
  
<body>  
    <div>  
        <button type="button" class="btn" id="btn1" οnclick="fun(this)" value="btn1"> button 1</button>  
        <button type="button" class="btn" id="btn2" οnclick="fun2(this)" value="btn2"> button2</button>  
    </div>  
</body>  
  
  
</html>  



server.php

<?php   
    if (isset($_POST['action']))  
    {  
        switch($_POST['action'])  
        {  
            case "btn1":btn1();break;  
            case "btn2":btn2();break;  
            default:break;  
        }  
    }  
      
    function btn1()  
    {  
        echo "hello button1";  
    }  
    function btn2()  
    {  
        echo "hello button2";  
    }  
  
? >  

方法1:index.php

<html>  
<head>  
    <style>  
    div {width:600px;margin:200px auto;}  
      
    .btn {  
        background-color:#44c767;  
        -moz-border-radius:28px;  
        -webkit-border-radius:28px;  
        border-radius:28px;  
        border:1px solid #18ab29;  
        display:inline-block;  
        cursor:pointer;  
        color:#ffffff;  
        font-family:Arial;  
        font-size:17px;  
        padding:16px 31px;  
        text-decoration:none;  
        text-shadow:0px 1px 0px #2f6627;  
    }  
    .btn:hover {  
        background-color:#5cbf2a;  
    }  
    .btn:active {  
        position:relative;  
        top:1px;  
    }  
      
    #btn2 {float:right;}  
      
    </style>  
      
    <script type="text/javascript" language="javascript" src="jquery.js"></script>  
    <script type="text/javascript" language="javascript">  
        function fun(n) {  
            $.ajax({  
                url:"server.php", //the page containing php script  
                type: "POST", //request type  
                data:{action: n.value},  
                success:function(result){  
                    alert(result);  
                }  
            });  
        }  
          
        function fun2(n) {  
            var url = "server.php";  
            var data = {  
                action : n.value  
            };  
            jQuery.post(url, data, callback);  
        }  
        function callback(data) {  
            alert(data);  
        }  
    </script>  
</head>  
  
<body>  
    <div>  
        <button type="button" class="btn" id="btn1" οnclick="fun(this)" value="btn1"> button 1</button>  
        <button type="button" class="btn" id="btn2" οnclick="fun2(this)" value="btn2"> button2</button>  
    </div>  
</body>  
  
  
</html>  


<スパン オンタイム 時間別