AJAX可以从内部PHP函数而不是外部页面获得结果吗?

时间:2011-07-28 18:42:45

标签: php ajax oop class

我刚开始使用OO PHP并创建了我的第一堂课。实际上,它有效,但我想稍微整理一下。

现在,类中的元素调用在文档头部声明的ajax函数。

我不希望该类依赖于正确的头,所以为了保持它自包含,我将脚本函数移动到类文件中。我找不到关于这是否是禁止的信息,所以如果是,我想知道“为什么将javascript / ajax放在PHP类错误的表单中?”但是,如果这是一种可接受的做法,我有一个棘手的问题。

AJAX调用一个PHP页面,然后结果将填充页面上更多的类对象。但是,我认为如果它不依赖外部php文件,那么类会更好。所以,我将文件移动到类文件中的函数中。这是一个棘手的问题。

如何让AJAX从与AJAX调用相同的文件中获取结果而不是外部页面?

到目前为止,这是我的AJAX代码。 var url当前是两个可能的PHP页面之一的路径,而不是所需的内部php函数。 var dest是类对象中结果最终的位置。

function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
    ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
    ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();

function sndReq(url,dest) {
http.open('get',url);

http.onreadystatechange = function () {
    if (http.readyState == 4) {
        if (http.status == 200) {
            var responce = http.responseText;
            document.getElementById(dest).innerHTML = responce;
        }
    }
};

http.send(null);
}

1 个答案:

答案 0 :(得分:0)

你要求的是xml-rpc或json-rcp之类的声音。它允许您动态执行服务器端代码并​​获得结果。

示例javascript rpc库:http://barracudaserver.com/doc/WebServices/JRpcDoc.html

但是,我认为简单地传递参数就是你想要的。最简单的方法是在url

中传递get参数
http://www.site.com/ajax.php?cmd=find_user&user_id=12

然后在php中检查全局$_GET变量

中的那些参数
if(isset($_GET["cmd"]) && $_GET["cmd"] == "find_user"){
   $user_id = $_GET["user_id"];
   //some server-side stuff    
   echo results;
 }