我是网页开发的新手,这似乎是一个基本问题,但我无法弄清楚如何解决。
通过按钮我需要在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>
答案 0 :(得分:2)
更新:我认为这个例子:https://stackoverflow.com/a/3410025/49251可能会向您显示完全您尝试做的事情。我在下面的回答是试图提供你的第一次尝试不起作用的背景。
PHP中的静态仅在脚本执行期间“生效”。
脚本仅在服务器上执行 - 只要服务器处理与请求关联的文件/脚本,脚本中的静态将只是“活动”。处理完请求并发送响应后,PHP就会消失。完成。没活着。结束。
浏览器端没有PHP,并且在发送响应后服务器不再运行与您的请求相关的任何内容(某些内存缓存策略可能是一个例外,但一般来说,我正在描述是PHP正常工作的方式。)
PHP的Web执行模型是:(1)请求,(2)服务器(通常是Apache)运行PHP来处理请求代码,发送响应(3)并完成。
要做你想做的事: