Как вызвать функцию при нажатии кнопки php - PullRequest
0 голосов
/ 25 января 2012

У меня есть кнопка, и когда кнопка нажата, я хочу вызвать функцию для некоторой обработки. Однако это не вызвало бы функцию. что когда не так?

<input type="submit" name="submit"  onclick="counterminus()" id="submit" value="Buy!"   
                <?
                    function  counterminus()
{

                        $cmeter = $cmeter - 1;



                        mysql_query("INSERT orders SET quantity='$value',fbId='$fbme',fbName='$fbName', email ='$fbEmail', dealName='$dealName'" );
                        mysql_query("UPDATE stardeal SET cmeter='$cmeter'WHERE dealId='$dealId'");
                        echo '<script type="text/javascript">'
                       , 'reloadPage();'
                       , '</script>';

                 }
?>

Ответы [ 4 ]

1 голос
/ 18 сентября 2013

Я надеюсь, что это решит вашу проблему.

код:

<html>
    <body>
        <?php
        $a = "hello";
        ?>
        <script>
            function echoHello()
            {
                alert("<?php hello(); ?>");
            }
        </script>
        <?php

        function hello() {
            global $a;
            echo $a;
        }
        ?>
        <button onclick="echoHello()">Say Hello</button>
    </body>
</html>
1 голос
/ 25 января 2012

Что пошло не так, что вы путаете PHP с клиентским языком. Вся обработка PHP выполняется на стороне сервера перед отправкой страницы пользователю, поэтому клиент не может вызвать скрипт PHP без отправки запроса на сервер.

Попробуйте подключить событие javascript к кнопке, которая вместо этого отправляет сообщение в скрипт PHP.

0 голосов
/ 25 января 2012

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

<?php
if(isset($_REQUEST['submit']))
{
counterminus();
}
  function  counterminus()
{
$cmeter = $cmeter - 1;
mysql_query("INSERT orders SET quantity='$value',fbId='$fbme',fbName='$fbName', email ='$fbEmail', dealName='$dealName'" );
mysql_query("UPDATE stardeal SET cmeter='$cmeter'WHERE dealId='$dealId'");

Header("location:samePage.php");

}

?>

    <input type="submit" name="submit"  id="submit" value="Buy!" />
0 голосов
/ 25 января 2012

PHP - это язык сценариев на стороне сервера, то есть сценарий выполняется при запросе страницы с сервера и останавливается, когда клиент загрузил страницу. Поэтому невозможно вызвать функцию PHP напрямую с веб-страницы, так как скрипт больше не работает.

Однако JavaScript запускается при загрузке страницы и работает до тех пор, пока страница не будет закрыта. Поэтому вместо этого вы должны использовать его для обработки событий кнопок. Если вам абсолютно нужно для вызова кода PHP на сервере, вы можете взглянуть на AJAX .

...