我正在做一些基本的Ajax东西(不是jquery ......只是学习基础知识),我有一个通用的结构设置,其中html调用一个javascript函数,它发送数据并运行一个特定的php页面。
但是,如果我只需要运行已在functions.php中定义的php函数,该怎么办?这有可能吗?我已经厌倦了为每个任务制作新的php文件;)
答案 0 :(得分:10)
你可以在php中定义一个类来处理这样的东西,例如:
functions.php:
class MyFunctions {
function foo() {
// code here
// if you need to pass in some parameters, you can do it via jQuery and fetch the data like so (for the jQuery, see below)
if($_GET['name'] == "john") { } // do stuff
}
function bar() {
// code here
}
static function handleFn($fName) {
if(method_exists(__CLASS__, $fname)) {
echo $this->{$fname}(); die; // since AJAX, just echo the output and stop executing
}
}
}
if(!empty($_GET['f'])) {
MyFunctions::handleFn($_GET['f']);
}
然后像你这样做你的ajax调用(假设jQuery):
$.get("/functions.php?f=func_name_to_call", {name: "John", hobby: "Programming"}, function(data) {
});
答案 1 :(得分:2)
在PHP脚本中,每个函数都包含一个if语句,用于检查GET变量。然后在JS中发送一个特定于调用该函数所需的GET变量。
答案 2 :(得分:0)
ajax也是一个http请求,不能直接调用php函数