从PHP类中调用Ajax方法

10

你好,

我想通过ajax调用一个类中的方法。 该类大致如下:

class MyClass{
      public function myMethod($someParameter,$someParameter2){
          //do something
          return $something;
      }
      private function myMethod2($someParameter3){
          //do something
          return something;
      }

}

我能否使用AJAX调用类方法(myMetod(2,3)),并使用返回值进行操作?我可以这样使用吗?

$.ajax({
        url : 'myClass.php',
        data : {
                    someData: '2,3',
               }
        type : 'POST' ,
        success : function(output){
                  alert(output)
        }
});
2个回答

8
你需要创建一个PHP脚本,调用这个类方法并可作为ajax请求调用。创建一个文件,例如:
举个例子:
myfile.php
<?php

   $date = $_POST; // print_r( $_POST ); to check the data

   $obj = new MyClass();

   $obj->myMethod( $_POST['field1'], $_POST['field2'] );
   $obj->myMethod2( $_POST['field1'] );

?>

并将您的jQuery代码更改为:

$.ajax({
        url  : 'path/to/myfile.php',
        data : { someData: '2,3' },
        type : 'POST' ,
        success : function( output ) {
                    alert(output)
                  }
});

如果我想为特定的ajax调用调用特定的方法怎么办?这是可能的吗? - Sadanand
@Sadanand,请参考答案https://dev59.com/vWMm5IYBdhLWcg3wm_7z。 - Jacob Nelson

3

我能使用 ajax 来调用类方法 (myMethod(2,3)) 并且使用返回结果来做一些操作吗?

可以的。

因为要调用类方法需要在你的 myClass.php 中初始化对象,你需要实例化类并传递正确的输入,如果类方法需要返回一些输出,只需将其打印出来即可。

例如:如果你想从 ajax 调用 myMethod,那么在你的 myClass.php 中:

//Check for ajax request to instantiate the class.
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
   $object = new MyClass();
   //hold the return value in a variable to send output back to ajax request or just echo this method.
   $result = $object->myMethod($_POST['value'], $_POST['value2']);
   echo $result;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接