2012-05-20 20 views
10

Ciao,metodo chiamata Ajax dalla classe php

Voglio chiamare un metodo da una classe tramite ajax. La classe è qualcosa di simile:

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

} 

posso usare Ajax per chiamare un metodo della classe (myMetod (2,3)) e con il ritorno di fare someting? Posso usarlo in questo modo?

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

risposta

7

È necessario creare script PHP che chiama questo metodo di classe e può essere chiamato come richiesta Ajax. Creare un file del tipo:

Per esempio:

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

?> 

E modificare il codice jQuery per:

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

grazie you.It funziona – Razvan

+0

E se io vuoi chiamare un metodo specifico per una chiamata ajax specifica? È possibile ? – Sadanand

+0

@Sadanand si prega di fare riferimento alla risposta http://stackoverflow.com/questions/17489109/ajax-request-and-php-class-functions –

3

Posso usare ajax per chiamare un metodo di classe (myMetod (2,3)) e con il ritorno di fare qualcosa?

sì, è possibile.

dal momento che chiamare il metodo di classe richiede l'inizializzazione dell'oggetto nel proprio myClass.php è necessario creare un'istanza della classe e passare l'input corretto, e se il metodo di classe deve restituire un output, basta farlo echo.

per esempio. dalla chiamata AJAX, se si desidera chiamare myMethod poi nella vostra 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; 
} 
Problemi correlati