Метод вызова Ajax из класса php

Привет,

Я хочу вызвать метод из класса через 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)
        }
});

Ответ 1

Вам нужно создать php script, который вызывает этот метод класса и может быть вызван как запрос 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)
                  }
});

Ответ 2

Могу ли я использовать ajax для вызова метода класса (myMetod (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;
}