我正在做的是检查数据库中的用户状态。
PHP页面echo是返回ajax调用的状态,具体取决于正在执行函数的状态。
这很有效。我知道我可以使用json,但是现在这很好。 我想要的不是回显用户状态,而是回应应该执行的函数并在完成ajax后执行它。
我的jQuery / ajax代码:
function checkstatus() {
$.ajax({
type: "GET",
url: "./query/checkstatus.php",
data: {}
}).done(function(result) {
if (result == "nieuw") {
loadHomeNieuw();
};
if (result == "actief") {
loadHome();
};
});
}
我想要但不起作用。 jQuery / ajax代码:
function checkstatus() {
$.ajax({
type: "GET",
url: "./query/checkstatus.php",
data: {}
}).done(function(result) {
});
}
PHP代码(不工作):
if ($status == "nieuw") {
echo "loadHomeNieuw();";
}
if ($status == "actief") {
echo "loadHome();";
}
这甚至可能吗?我问的原因是我觉得它更安全。有可能以用户身份破解状态......因此他可以更改它并且正在调用错误的函数。如果我在服务器端执行此操作,则更安全。
或者有更好的选择吗?
答案 0 :(得分:0)
您可以调用eval
function checkstatus() {
$.ajax({
type: "GET",
url: "./query/checkstatus.php",
data: {}
}).done(function(result) {
eval(result);
});
}
但有些人说这是邪恶的,所以你只需返回一个名字并执行一个具有该名称的函数:
function checkstatus() {
$.ajax({
type: "GET",
url: "./query/checkstatus.php",
data: {}
}).done(function(result) {
window[result]();
});
}
在php中只是echo name
if ($status == "nieuw") {
echo "loadHomeNieuw";
} else if ($status == "actief") {
echo "loadHome";
}
答案 1 :(得分:0)
您正在寻找的内容称为GetScript:http://api.jquery.com/jQuery.getScript/
这将执行返回的代码。 代码:
$.getScript("./query/checkstatus.php");