我有这段代码:
<?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等。我非常感谢您提供的任何帮助。
答案 0 :(得分:0)
试试这个。我修改了你的代码
<?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 ;
?>
答案 1 :(得分:0)
<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响应以进一步增加。
希望这会有所帮助。
答案 2 :(得分:0)
如果你只想使用php检查&#34;我&#34;你可以使用$ _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"];
?>