2012-07-24 118 views
1

我有3个文件:fileNum1.php,fileNum2.phpfileNum3.php无法从一个php文件调用另一个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调用不工作! 问题是什么? (是否因为我已经在XMLHttpRequest内部启动了new XMLHttpRequest?)

+2

您无法使用AJAX调用另一个调用另一个的文件。在你的第二个文件中,你应该包含fileNum3.php(fileNum3将会有一个函数返回所需的数据)并且打印(在第二个文件中)你从函数中获得的内容。 – Novak 2012-07-24 15:41:49

+0

难以理解为什么有人会低估这个问题。这是一个很好的问题。 – 2012-07-24 15:51:50

+0

@Guy如果PHP返回JavaScript,我认为它可以被执行。 – 2012-07-24 16:01:05

回答

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(); 
}