我会将这个问题分解为段落以便于参考。
我有一个使用Ajax调用php文件的脚本;按下按钮后执行脚本。
PHP文件包含一个简单的代码,该代码加上带有1的数字。
<?php
$response = $response + 1;
echo $response;
?>
但是,多次按下按钮时会出现问题。我做了一些研究,我可以得出结论,我所做的简单PHP脚本有问题,或者每次重新加载时代码只执行一次。
我读了一篇文章,解释了很多使用Javascript的工作,如果我想在同一个脚本中多次执行Ajax命令,但我没有看到它在多次执行时无法执行多次的原因按下按钮。
问题:每次按下按钮时,PHP文件“post.php”是否都会被执行?它与我的PHP文件有关吗? 每次按下按钮,如何将脚本加上数字加1?是因为我需要一些额外的Javascript才能做到这一点?
脚本的其余部分在这里:
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","post.php",true);
xmlhttp.send();
}
</script>
</head>
<body>
<p>This button will execute an Ajax function</p>
<button type="button" onclick="loadXMLDoc()">Press here!</button>
<div id="myDiv"></div>
<script type="text/javascript" src="http://www.parameter.dk/counter/5b0d9873158158e08cad4c71256eb27c"></script>
</body>
如果我在某些方面不够清楚,请选出段号,我会加深那一部分。
答案 0 :(得分:1)
在你的代码中,$ response始终为1,因为默认情况下php没有状态。您可以通过在会话中保存响应来解决此问题。
session_start();
if (isset($_SESSION['response'])) {
$_SESSION['response'] = $_SESSION['response'] + 1;
} else {
$_SESSION['response'] = 1;
}
echo $_SESSION['response'];