2012-05-20 17 views
10

Hola,Método de llamada Ajax de la clase php

Quiero llamar a un método de una clase a través de ajax. La clase es algo como esto:

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

} 

puedo usar ajax para llamar a un método de clase (myMetod (2,3)) y con el retorno obligado a hacer algo? ¿Puedo usarlo así?

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

Respuesta

7

Es necesario crear script PHP que llama a este método de clase y se puede llamar como petición Ajax. Crear un archivo como:

Por ejemplo:

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

?> 

Y cambiar el código de jQuery para:

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

gracias you.It funciona – Razvan

+0

¿Qué pasa si ¿Quieres llamar al método específico para una llamada ajax específica? Es posible ? – Sadanand

+0

@Sadanand consulte la respuesta http://stackoverflow.com/questions/17489109/ajax-request-and-php-class-functions –

3

¿Puedo usar ajax para llamar a un método de clase (myMetod (2,3)) y con el retorno hacer algo?

sí, puede.

ya que al llamar al método de clase necesita la inicialización del objeto en su myClass.php necesita crear una instancia de la clase y pasar la entrada correcta, y si el método de clase es devolver alguna salida simplemente haga eco.

por ejemplo. de su llamada AJAX si desea llamar myMethod entonces en su 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; 
} 
Cuestiones relacionadas