Slik kaller du en PHP-funksjon ved å klikke på en knapp

Jeg har laget en side som heter functioncalling.php som inneholder to knapper, Submit og Insert. Som nybegynner i PHP ønsker jeg å teste hvilken funksjon som utføres når en knapp blir klikket. Jeg vil at utdataene skal komme på samme side. Så jeg opprettet to funksjoner, en for hver knapp. Kildekoden for functioncalling.php er som følger:

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

        <?php
            function select(){
               echo "The select function is called.";
            }
            function insert(){
               echo "The insert function is called.";
            }
        ?>

Problemet her er at jeg ikke får noen utdata etter at noen av knappene er klikket.

Hva er det jeg gjør feil?

Løsning

Knappeklikk er klientsiden, mens PHP kjøres serversiden, men du kan oppnå dette ved å bruke Ajax:

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

I PHP-filen din:

<?php
    function abc($name){
        // Your code here
    }
?>
Kommentarer (5)

Du kan ikke kalle PHP-funksjoner som å klikke på en knapp fra HTML. Fordi HTML er på klientsiden mens PHP kjører på serversiden.

Enten må du bruke noe Ajax eller gjøre det som i kodebiten nedenfor.

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

Du må legge inn skjemadataene dine og deretter se etter riktig knapp som er klikket.

Kommentarer (2)

Attributtet onclick i HTML kaller JavaScript-funksjoner, ikke PHP-funksjoner.

Kommentarer (0)