2012-05-20 4 views
10

Привет,Метод вызова 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) 
     } 
}); 

ответ

7

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

слава you.it работает – Razvan

+0

Что делать, если я хотите вызвать конкретный метод для конкретного вызова ajax? Является ли это возможным ? – Sadanand

+0

@Sadanand см. Ответ http://stackoverflow.com/questions/17489109/ajax-request-and-php-class-functions –

3

Могу ли я использовать ajax назвать метод класса (myMetod (2,3)) и с возвращением что-то делать?

да вы можете.

так как вызов метода класса требует инициализации объекта в вашем myClass.php, вам необходимо создать экземпляр класса и передать правильный ввод, а если метод класса должен вернуть некоторый вывод, просто выполните его эхо.

например. от вашего АЯКС вызова, если вы хотите позвонить 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; 
}