通过AJAX访问PHP类函数
有人知道我如何使用jQuery通过AJAX从PHP类直接访问函数吗 PHP: jQuery:通过AJAX访问PHP类函数,php,jquery,Php,Jquery,有人知道我如何使用jQuery通过AJAX从PHP类直接访问函数吗 PHP: jQuery: $.ajax({ url: myClass.php, data: Blah.doSomething(); "or" Blah->doSomething() "or whatever" }); 我知道这是一个粗糙的例子,我只是想说明一点,我希望你能理解我问题的要点 目前,我正在按照以下思路做一些事情: $.ajax({ url: myCla
$.ajax({
url: myClass.php,
data: Blah.doSomething(); "or" Blah->doSomething() "or whatever"
});
我知道这是一个粗糙的例子,我只是想说明一点,我希望你能理解我问题的要点
目前,我正在按照以下思路做一些事情:
$.ajax({
url: myClass.php,
data: data : { 'type':'doSomething' }
});
||
我不喜欢它…现在我想不出比PHP用json输出结果更好的方法了,你可以通过getJSON获得结果,你需要创建一个该类的对象,然后调用你需要的方法。 类声明不执行任何代码 例如,您可以将其添加到类下面:
class Blah { ... }
$b = new Blah();
$b->doSomething();
更新:
如果要调用POST中发送的方法,可以使用函数call\u user\u函数:
$method_name = $_POST['method'];
$b->{$method_name}();
请参阅此处的更多详细信息:这是不可能的。你现在拥有的可能是最好的方法。我同意马祖奇的答案。我希望这是一个更完整的一点 PHP: HTML:
此外,您还可以研究xajax,这是一个很好的小框架,可以简化phpjavascript交互。它还可以从php调用js函数。这是链接:我不知道你为什么喜欢这样做。 这不是一个好的编程实践。 但是你可以试试这样的
$.ajax({
url: myClass.php,
data: {'call':'Blah.doSomething', 'args':5}
});
在服务器端,您可以这样做
$fun = explode('.', $call);
$function = array($fun[0], $fun[1]);
if (is_callable($function)) {
$response = call_user_func_array($function, $args);
}
echo $response;
你为什么不喜欢当前的解决方案?如果你的例子是真的考虑安全问题。任何人都可以从浏览器中调用任意类函数!请参阅远程过程调用-RPC,例如JSON-RPC-您可以通过添加注释来解释代码如何工作来回答问题,从而改进此答案。。。
class SomeClass{
//definintion
}
$obj = new SomeClass();
$obj->doStuff();
<input type="button" onclick="<?php $obj->doStuff(); ?>" id="btnAdd" value="Click Me" />
$.ajax({
url: myClass.php,
data: {'call':'Blah.doSomething', 'args':5}
});
$fun = explode('.', $call);
$function = array($fun[0], $fun[1]);
if (is_callable($function)) {
$response = call_user_func_array($function, $args);
}
echo $response;
**Your class**
class Blah {
function doSomething(data) {
echo "I am not an animal, I'm a ".data;
}
}
**Ajax call in other document**
$.ajax({
url: example.php,
data: info='beast'
success: data () { ...
});
**in example.php**
include (class.blah.php);
$obj = new SomeClass();
$obj ->doStuff($_GET['info']);