Web

Как определить функцию PHP при нажатии кнопки на форме

Я создал страницу под названием functioncalling.php, которая содержит две кнопки: Submit и Insert. Я хочу проверить, какая функция выполняется при нажатии на кнопку. Я хочу, чтобы вывод появлялся на той же странице. Поэтому я создал две функции, по одной для каждой кнопки.

<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 "Вызывается функция select.";

    }

    function insert(){

        echo "Вызывается функция insert.";

    }

?>

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

 

Ответ 1

Здесь необходим Ajax. Пожалуйста, обратитесь к приведенному ниже коду для получения более подробной информации. Измените вашу разметку следующим образом:

HTML

<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 " Вызывается функция select.";

        exit;

    }

    function insert() {

        echo " Вызывается функция insert.";

        exit;

    }

?>

 

 Ответ 2

Нажатие на кнопку происходит на стороне клиента, в то время как PHP выполняется на стороне сервера, но этого можно добиться с помощью 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){

        //  Некоторый код

    }

?>

 

Ответ 3

Вы не можете вызывать функции PHP, такие как нажатие на кнопку, из HTML. Потому что HTML находится на стороне клиента, а PHP работает на стороне сервера. Вам нужно либо использовать Ajax, либо сделать это так, как в приведенном ниже фрагменте кода:

<?php

    if ($_GET) {

        if (isset($_GET['insert'])) {

            insert();

        } elseif (isset($_GET['select'])) {

            select();

        }

    }

    function select() {

       echo " Вызывается функция select.";

    }

    function insert() {

       echo " Вызывается функция insert.";

    }

?>

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



Ответ 4

Вы можете написать так на 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";

            // Некоторый код

        }

    }

?>

 

Ответ 5

Вы можете просто сделать это в php, для этого можно определить нажатие кнопки с помощью функции:

if(isset($_Post['button_tag_name']){

echo "Button Clicked";

}

 Для этого вы должны изменить свой код следующим образом:

<?php

if(isset($_Post['select']){

echo "Кнопка select нажата и должен быть выполнен метод select";

}

if(isset($_Post['insert']){

echo "Нажата кнопка insert и должен быть выполнен метод insert";

}

           

?>

 

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

//Это будет обработано на стороне клиента

function insert(){

  window.alert("Вы кликнули на кнопке insert");

}

 

function select(){

  window.alert("Вы кликнули на кнопке insert");

}

</script>

</body>

</html>

 

Схожие статьи

Что за профессия веб-разработчик: обязанности и зарплата
Web

Что за профессия веб-разработчик: обязанности и зарплата

Web

Как выполнить многократную вставку в базу данных с помощью запроса foreach insert в mysql

Web

Копируются ли массивы в PHP как значения или как ссылки на новые переменные при передаче в функции

Web

Как восстановить сериализованную строку, которая была повреждена из-за неправильной длины счетчика байтов