Reputation: 731
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)
}
});
Upvotes: 10
Views: 16527
Reputation: 25735
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;
}
Upvotes: 3
Reputation: 42093
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)
}
});
Upvotes: 8