2012-05-20 66 views
10

嗨,來自php類的Ajax調用方法

我想通過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中對象的初始化,您需要實例化類並傳遞正確的輸入,並且如果類方法返回某個輸出,則只需對其進行回顯。例如

。從你的Ajax調用,如果你想然後調用myMethodmyClass.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; 
}