我有这样的代码:
<?php $i=12;
?>
<html>
<head></head>
<body>
<div id="prueba"></div>
<script type="text/javascript">
function loadXMLDoc()
{
var i = "<?php echo $i; ?>";
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
xmlhttp=new XMLHttpRequest();
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('prueba').innerHTML+=xmlhttp.responseText;
}
}
xmlhttp.open("GET","load.php?i="+i,true);
xmlhttp.send();
}
window.onclick =loadXMLDoc;
</script>
</body>
</html>我的load.php文件是这样的:
<?php
$i = $_REQUEST["i"];
echo $i;
$i=$i+1;
echo "<?php $i=".$i."?>";
?>当我点击页面时,它会加载load.php,并返回$i的值。我将$i的值加1,当我第二次单击时,我希望该值为2,依此类推,将$i的值加1。然而,它总是输出1。输出是111111111,我希望得到1234567等。我真的很感谢你能提供的任何帮助。
发布于 2015-04-13 17:33:08
尝尝这个。我已经修改了你的代码
<?php $i=12;
?>
<html>
<head></head>
<body>
<div id="prueba"></div>
<script type="text/javascript">
var i = "<?php echo $i; ?>";
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
xmlhttp=new XMLHttpRequest();
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('prueba').innerHTML=xmlhttp.responseText;
}
}
i=i+1;
var pruebaInnerHtml=document.getElementById('prueba').innerHTML;
pruebaInnerHtml=pruebaInnerHtml+i;
xmlhttp.open("GET","load.php?ihtml="+pruebaInnerHtml,true);
xmlhttp.send();
}
window.onclick =loadXMLDoc;
</script>
</body>
</html>load.php文件是这样的:
<?php
$i = $_REQUEST["ihtml"];
echo $i ;
?>发布于 2015-04-13 17:53:44
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
var i = document.getElementById("pruebaVal").value;
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("prueba").innerHTML=xmlhttp.responseText;
document.getElementById("pruebaVal").value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","load.php?i="+i,true);
xmlhttp.send();
}
window.onclick =loadXMLDoc;
</script>
</head>
<body >
<input type="hidden" id="pruebaVal" value="1">
<div id="prueba"></div>
</body>
</html>下面是load.php
<?php
$i = $_REQUEST["i"];
$i=$i+1;
echo $i;
?>我已经将ajax代码从body部分移动到Head部分。以及使用隐藏变量来初始化var i,并且还存储ajax响应以供进一步递增。
希望这能有所帮助。
发布于 2015-04-13 18:35:18
如果你想只使用php来检查"i“,你可以使用$_SESSION:
<?php
session_start();
$_SESSION["i"]=0;
?>
<html>
<head></head>
<body>
<div id="prueba"></div>
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("prueba").innerHTML+=xmlhttp.responseText;
}
}
xmlhttp.open("GET","load.php",true);
xmlhttp.send();
}
window.onclick=loadXMLDoc;
</script>
</body>
</html>在load.php中:
<?php
session_start();
$_SESSION["i"] = $_SESSION["i"]+1;
echo $_SESSION["i"];
?>https://stackoverflow.com/questions/29601203
复制相似问题