Ajax,加载后更改变量

时间:2015-04-13 08:43:10

标签: javascript php ajax variables load

我有这段代码:

<?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等。我非常感谢您提供的任何帮助。

3 个答案:

答案 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"];
?>