通过AJAX访问PHP类函数
有谁知道如何通过AJAX(使用jQuery)从PHP类直接访问函数。
PHP:
class Blah { function __construct() { } function doSomething(data) { echo "I am not an animal"; } }
jQuery的:
$.ajax({ url: myClass.php, data: Blah.doSomething(); "or" Blah->doSomething() "or whatever" });
我知道这是一个粗略的例子,我只是想说明一点,我希望你能得到我的问题的要点。
目前我正在沿着这些方向做点什么:
$.ajax({ url: myClass.php, data: data : { 'type':'doSomething' } });
||
if(POST['data']['type'] == 'doSomething') { $this->doSomething(); }
我不喜欢它……
您需要创建该类的对象,然后调用所需的方法。 类声明不会执行任何代码。
例如,您可以在类下面添加:
class Blah { ... } $b = new Blah(); $b->doSomething();
更新:
如果要调用POST中发送的方法,可以使用函数call_user_function:
$method_name = $_POST['method']; $b->{$method_name}();
详情请见: http : //php.net/manual/en/function.call-user-func.php
我不知道你为什么喜欢这样做。 它不是一个好的编程习惯。 但你可以尝试这样的事情
$.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;
现在我想不出比PHP在json中输出结果更好的方法,你通过getJSON获得结果
我同意mazzucci的回答。 我希望这更完整一点。
PHP:
class SomeClass{ //definintion } $obj = new SomeClass(); $obj->doStuff();
HTML:
此外,你可以看看xajax,一个很好的小框架,简化了PHP < - > javascript交互。 它也可以从php调用js函数。 这是链接: http : //www.xajax-project.org/en/home/
**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']);
这是不可能的。 你现在拥有的可能是最好的方式。