How to call a php script/function on a html button click

后端 未结 7 1993
南旧
南旧 2020-11-27 19:20

Before someone has a go at me or marks this down, I have looked all over the internet to find out how to do this (including the same question on stackoverflow). I\'m new, an

相关标签:
7条回答
  • 2020-11-27 19:37
    First understand that you have three languages working together.
    

    PHP: Is only run by the server and responds to requests like clicking on a link (GET) or submitting a form (POST). HTML & Javascript: Is only run in someone's browser (excluding NodeJS) I'm assuming your file looks something like:

    <?php
    function the_function() {
    echo 'I just ran a php function';
     }
    
     if (isset($_GET['hello'])) {
      the_function();
      }
       ?>
      <html>
     <a href='the_script.php?hello=true'>Run PHP Function</a>
     </html>
    

    Because PHP only responds to requests (GET, POST, PUT, PATCH, and DELETE via $_REQUEST) this is how you have to run a php function even though their in the same file. This gives you a level of security, "Should I run this script for this user or not?".

    If you don't want to refresh the page you can make a request to PHP without refreshing via a method called Asynchronous Javascript and XML (AJAX).

    0 讨论(0)
  • 2020-11-27 19:45

    Of course AJAX is the solution,

    To perform an AJAX request (for easiness we can use jQuery library).

    Step1.

    Include jQuery library in your web page

    a. you can download jQuery library from jquery.com and keep it locally.

    b. or simply paste the following code,

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    

    Step 2.

    Call a javascript function on button click

    <button type="button" onclick="foo()">Click Me</button>
    

    Step 3.

    and finally the function

     function foo () {
          $.ajax({
            url:"test.php", //the page containing php script
            type: "POST", //request type
            success:function(result){
             alert(result);
           }
         });
     }
    

    it will make an AJAX request to test.php when ever you clicks the button and alert the response.

    For example your code in test.php is,

    <?php echo 'hello'; ?>
    

    then it will alert "hello" when ever you clicks the button.

    0 讨论(0)
  • 2020-11-27 19:47

    You can also use

       $(document).ready(function() {
    
        //some even that will run ajax request - for example click on a button
    
        var uname = $('#username').val();
        $.ajax({
        type: 'POST',
        url: 'func.php', //this should be url to your PHP file
        dataType: 'html',
        data: {func: 'toptable', user_id: uname},
        beforeSend: function() {
            $('#right').html('checking');
        },
        complete: function() {},
        success: function(html) {
            $('#right').html(html);
        }
        });
    
        });
    And your func.php:
    
      function toptable()
     {
      echo 'something happens in here';
     }
    

    Hope it helps somebody

    0 讨论(0)
  • 2020-11-27 19:51
    the_function() {
    
    $.ajax({url:"demo_test.php",success:function(result){
    
       alert(result); // will alert 1
    
     }});
    
    }
    

    // demo_test.php

    <?php echo 1; ?>
    

    Notes

    1. Include jquery library for using the jquery Ajax
    2. Keep the demo_test.php file in the same folder where your javascript file resides
    0 讨论(0)
  • 2020-11-27 19:54

    Just try this:

    <button type="button">Click Me</button>
    <p></p>
    <script type="text/javascript">
        $(document).ready(function(){
            $("button").click(function(){
    
                $.ajax({
                    type: 'POST',
                    url: 'script.php',
                    success: function(data) {
                        alert(data);
                        $("p").text(data);
    
                    }
                });
       });
    });
    </script>
    

    In script.php

    <?php 
      echo "You win";
     ?>
    
    0 讨论(0)
  • 2020-11-27 20:02

    Modify the_script.php like this.

    <script>
    the_function() {
        alert("You win");
    }
    </script>
    
    0 讨论(0)
提交回复
热议问题