我有三个文件,分别是1.php、2.php和Ajax.js
1.php内容如下<?php $i=   //对变量i进行一系列运算include("2.php")2.php内容如下
<?php
echo $i;Ajax.js大体内容如下:
每隔1秒中请求一下2.php的返回内容;
httpxml.open("get","2.php");
XX.innerHTML=httpxml.responseText;
但是现在的问题是XX.innerHTML始终不变,不知为何?
已确认以下信息:
1、1.php中的$i内容时刻在变化
2、Ajax.js也按照规定频率执行请求动作ajaxphp

解决方案 »

  1.   

    httpxml.open("get","2.php?t="+Math.random()); //请求地址加个随机数看看
      

  2.   

    httpxml.open("get","1.php");2.php 只是输出 1.php 计算的结果
      

  3.   

    不是说了吗?
    那么你只访问2.php如何能得到1.php计算的结果呢?
      

  4.   

    提醒下,在1.php中,是在$i时刻变化的过程中执行include("2.php")的
      

  5.   

    呵呵,很感谢提醒。但是被提醒的应该是你
    你 httpxml.open("get","2.php"); 访问的是 2.php !
    而2.php中并没有数据计算
      

  6.   

    但是 2.php 里有获取变量$i啊?此变量来自1.php的计算
      

  7.   

    1.php和2.php里$i指的应该是同一变量吧,因为1.php里有include.不知我的理解可对
      

  8.   

    你确认直接调2.php能获得$i的值?
      

  9.   

    老徐说的很清楚了吧 是1包含了2 你要请求1才能得到结果。没理解include吧
      

  10.   

    我还是贴出来吧。最终想实现一个Ajax的例子,共4个文件,分别是form.php,1.php,2.php,Ajax.js
    form.php内容如下:
    <form action="1.php" method="post" id="myForm" enctype="multipart/form-data" target="hidden_iframe">
    <input type="submit" value="生成报表" name="submit">

    </form>
    <iframe id="hidden_iframe" name="hidden_iframe" src="about:blank" frameborder="0" width="100%" height="600px"></iframe>
    <div id="status"></div>
    <script type="text/javascript" src="Ajax.js"></script>
    1.php内容如下:
    <?php 
    session_start();
    for ($i;$i<10;$i++)
    {
    $_SESSION["temp"]=$i;
    sleep(1);
    }
    ?>
    2.php内容如下:
    <?php
    session_start();
    echo $_SESSION["temp"];
    Ajax.js内容如下:function createRequestObject() {
        var http;
        if (navigator.appName == "Microsoft Internet Explorer") {
            http = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
            http = new XMLHttpRequest();
        }
        return http;
    }
    function sendRequest() {
        var http = createRequestObject();
      
        http.onreadystatechange = function () { handleResponse(http); };
        http.send(null);
    }
    function handleResponse(http) {
        var response;
        if (http.readyState == 4) {
            response = http.responseText;
             http.open("GET", "2.php");
            document.getElementById("status").innerHTML = response;
           
            if (response < 100000000000000000) {
                setTimeout("sendRequest()", 1000);
            }
            else {
               
                document.getElementById("status").innerHTML = "Done.";
            }
        }
    }
    function startUpload() {
        setTimeout("sendRequest()", 1000);
    }    document.getElementById("myForm").onsubmit = startUpload;
    我想实现的效果是在form里点击“生成报表”按钮,则会每一秒钟显示一个从0到9的数字。请高手帮助分析下原因,现在点击“生成报表”按钮后未有数字每隔1秒显示出来
      

  11.   

    我知道你想做什么了(上传进度条)
    那么对不起,你走进死胡同了对于上传进度条,php提供了arc和upload两个扩展,并且php5.4也内置了类似功能
    如何写?你搜索一下就知道了你的应用不可能实现的原因在于默认的文件方式的 session
    session 临时文件一旦被打开,就不能被其他进程再打开了
    对于其他存储方式是否也是这样,没有测试过不好乱说
      

  12.   

    版主,我确实想实现类似进度条的功能,但是不是文件上传的进度条。(文件上传进度条的实现方式我已了解)
    我想实现的是用Ajax获取1.php文件处理过程的进度(因为1.php是一个比较漫长的过程,可能需要几十秒钟,我想通过Ajax的方式将1.php的处理进度实时的展现给用户)
      

  13.   

    除了 seeeion,你就不能用其他共享手段传递数据吗?