Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ajax call method from class php

Hi ,

I want to call a method from a class through ajax. The class is something like this :

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

}

Can i use ajax to call a class method (myMetod(2,3)) and with the return to do someting? Can i use it like this?

$.ajax({
        url : 'myClass.php',
        data : {
                    someData: '2,3',
               }
        type : 'POST' ,
        success : function(output){
                  alert(output)
        }
});
like image 325
Razvan Avatar asked May 20 '12 07:05

Razvan


2 Answers

You need to create php script that calls this class method and can be called as ajax request. Create a file like:

For Example:

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'] );

?>

And change your jQuery code to:

$.ajax({
        url  : 'path/to/myfile.php',
        data : { someData: '2,3' },
        type : 'POST' ,
        success : function( output ) {
                    alert(output)
                  }
});
like image 163
Naveed Avatar answered Oct 20 '22 01:10

Naveed


Can I use ajax to call a class method (myMetod(2,3)) and with the return to do something?

yes you can.

since calling the class method needs the initialization of the object in your myClass.php you need to instantiate the class and pass the proper input, and if the class method is to return some output just echo it.

for example. from your ajax call if you want to call myMethod then in your 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;
}
like image 35
Ibrahim Azhar Armar Avatar answered Oct 20 '22 01:10

Ibrahim Azhar Armar