通过php中的函数更新变量值


Updating variable value through a function in php

我是网页开发的新手,这似乎是一个基本的问题,但我不知道如何解决。

通过一个按钮,我需要改变php中一个变量的值,特别是每次按钮被按下时,变量的值必须增加。

代码如下:

     <!DOCTYPE html>
     <html lang="en">
     <head>
        <meta charset="utf-8">
        <title>Test</title>
     </head>
     <body>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
        <script>
             function echoVal()
             {
                 alert("<?php val(); ?>");
             }
        </script>
        <?php
             function val() {
                static $a = 0;
                $a++;
                echo $a;
             } 
        ?>
        <button onclick="echoVal()"> Increase </button>
     </body>
     </html>

主要问题是变量$a的值总是1,当按钮被按下时它的值不会增加。我已经保存了扩展名为。php的文件(我不确定这是否会有任何不同,但我只是提到它)。

有什么建议可以解决这个问题吗?

谢谢你的建议。

编辑代码:

     <!DOCTYPE html>
     <html lang="en">
     <head>
        <meta charset="utf-8">
        <title>Test</title>
     </head>
     <body>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
        <script>
             function echoVal()
             {
                 alert("<?php val(); ?>");
             }
        </script>
        <?php
             function val() {
                static $a = 0;
                $a++;
                $filename ='infoX.txt';
                if (is_writable($filename)) {
                    if (!$handle = fopen($filename, 'w')) {
                        echo "Cannot open file";
                    } else {
                        if (fwrite($handle, $a) == FALSE) {
                            echo "Cannot write to file";
                        } else {
                            echo $a;
                        }
                        fclose($handle);
                    }  
               } else {
                    echo "The file is not writable";
               }
             } 
        ?>
        <button onclick="echoVal()"> Increase </button>
     </body>
     </html>

更新:我认为这个例子:https://stackoverflow.com/a/3410025/49251可能会告诉你确切如何做你想做的事情。我下面的回答是试图提供一个背景,为什么你的第一次尝试没有成功。


PHP中的静态只在脚本执行期间"存在"。

脚本只在服务器上执行——只有当服务器处理与请求相关联的文件/脚本时,脚本中的静态信息才会"有效"。一旦处理了请求并发送了响应,PHP就消失了。完成了。不是活着。完成。

浏览器端没有PHP,服务器在响应发送后不再运行任何与您的请求相关的内容(一些内存缓存策略可能是例外,但通常,我所描述的是PHP的正常工作方式)。

PHP的web执行模型是:(1)请求,(2)服务器(通常是Apache)运行PHP处理请求代码,发送响应(3)并完成。

做你想做的事:

    你可以完全使用浏览器端代码(javascript),或者
  1. 你可以将按钮点击的结果发送到服务器,在数据库中持久化,并重新请求那些更新的结果,通过重新加载/重新生成页面或使用ajax在服务器上获得一些代码来运行并相应地更新页面的一部分。