无法从一个php文件调用另一个php文件

时间:2012-07-24 15:38:39

标签: php javascript html

我有3个文件:fileNum1.phpfileNum2.phpfileNum3.php

fileNum1.php文件调用fileNum2.php文件:

    if (window.XMLHttpRequest)
    {
        // code for IE7+, Firefox, Chrome, Opera, Safari 
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        // code for IE6, IE5 
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET","fileNum2.php",false);
    xmlhttp.send(); 

fileNum2.php拨打fileNum3.php

    if (window.XMLHttpRequest)
    {
        // code for IE7+, Firefox, Chrome, Opera, Safari 
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        // code for IE6, IE5 
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET","fileNum3.php",false);
    xmlhttp.send(); 

fileNum3.php的调用无效! 有什么问题? (可能是因为我在现有的new XMLHttpRequest内启动了XMLHttpRequest吗?)

1 个答案:

答案 0 :(得分:0)

JavaScript是客户端代码。这意味着需要浏览器来解释和执行JavaScript代码。

如果您通过浏览器访问fileNum1.php,则会执行对fileNum2.php的调用,因为fileNum1.php的JavaScript已被解释。

fileNum2.phpfileNum3.php的呼叫将不会执行,因为它不会返回到浏览器。第三个文件中的JavaScript将作为输出返回给服务器,服务器正在发出请求,JavaScript将永远不会返回到浏览器。

如果您希望fileNum3.php的操作返回fileNum1.php,则必须在fileNum3.php上调用fileNum2.php时捕获数据,然后返回响应到fileNum1.php

或者,您可以正确的方式执行此操作,并说fileNum1.php调用fileNum2.php并且一切正常,然后致电fileNum3.php

if (window.XMLHttpRequest)
{
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest();
}
else
{
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","fileNum2.php",false);
xmlhttp.send(); 

if(xmlhttp.responseText !== "undefined"){
    if (window.XMLHttpRequest)
    {
        // code for IE7+, Firefox, Chrome, Opera, Safari 
        xmlhttp2=new XMLHttpRequest();
    }
    else
    {
        // code for IE6, IE5 
        xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp2.open("GET","fileNum3.php",false);
    xmlhttp2.send(); 
}