页面刷新时的Javascript函数触发器
我有一个超链接,点击该链接将运行JavaScript函数。我还有一个PHP变量$counter。在JavaScript函数中,$counter的值增加1,即$counter++。它很好用。但每当刷新页面时,同样的函数也会运行。因此,每当刷新页面时,$计数器的值都会增加1。我尝试了网络上所有可用的解决方案,如preventDefault()、ClickEventHandler等,但都不起作用。请帮忙解决这个问题。在下面的代码中,我将$counter设置为0。但它以1作为输出加载。我希望它仅在单击超链接时计数。这是我的示例代码页面刷新时的Javascript函数触发器,javascript,php,html,Javascript,Php,Html,我有一个超链接,点击该链接将运行JavaScript函数。我还有一个PHP变量$counter。在JavaScript函数中,$counter的值增加1,即$counter++。它很好用。但每当刷新页面时,同样的函数也会运行。因此,每当刷新页面时,$计数器的值都会增加1。我尝试了网络上所有可用的解决方案,如preventDefault()、ClickEventHandler等,但都不起作用。请帮忙解决这个问题。在下面的代码中,我将$counter设置为0。但它以1作为输出加载。我希望它仅在单击超
<?php
session_start();
require("dbconfig.php");
$counter=0;
?>
<html>
<head>
<script>
function onclick() {
<?php
$counter++;
?>
}
</script>
</head>
<body>
<a href="" type="button" onclick="check()">link text</a>
</body>
<?php
//tracing counter value
echo $counter;
?>
</html>
函数onclick(){
}
TL;医生:
您不能混合使用PHP和JS代码,期望JS函数执行PHP代码
首先PHP准备输出到浏览器,然后浏览器解析JS和HTML。JS从来不知道PHP代码
单击CTRL+U以查看浏览器看到的源代码-没有PHP代码
页面刷新时未运行JS函数。PHP代码在页面刷新时运行 首先是PHP解析器:
session_start();
require("dbconfig.php");
$counter=0;
$counter++;
echo $counter;
然后是JS/Html解析器
此时,您的JS代码如下所示:
function onclick() {
}
函数的内容为空,因为您没有从PHP端输出任何内容
要修复此问题,请将PHP var移动到JS var:
<?php
session_start();
require("dbconfig.php");
$counter=0;
?>
<html>
<head>
<script>
var jsCounter = <?= $counter; ?>
function onclick() {
jsCounter++;
console.log(jsCounter);
}
</script>
</head>
<body>
<a href="" type="button" onclick="check()">link text</a>
</body>
</html>
var jsCounter=
函数onclick(){
jsCounter++;
console.log(jsCounter);
}
请注意,关闭主体标签后,切勿输出。您是否也可以提供该功能?您的代码在哪里?请添加代码……您需要发布代码。但我认为这个解决方案在设计上有缺陷。刷新页面后,Javascript将不会有任何持久数据,除非您使用
sessionStorage
或localStorage
。我已经用示例代码更新了文章。我已将$counter设置为0。但它以1作为输出加载。我希望它只在点击超链接时计数。非常感谢您的解决方案。有没有办法在增量后将jsCounter值分配回$counter?因为我想在数据库中存储$counter值。我尝试了这个方法,但没有成功。但正如您所说,首先PHP准备输出到浏览器。因此,有可能在最后用php($counter)响应jsCounter(javascript)增加的值吗?@Rajesh不,JS不能将值赋回php。您可以使用会话来存储值,以便在刷新后将其持久化。通常PHP和JS通过Ajax请求进行“对话”