我刚开始使用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);
}
答案 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;
}