2014-08-28 21 views
0

我正在用Phonegap創建一個移動應用程序。由於該項目是基於服務器的,因此我使用JQuery和AJAX連接到位於服務器上的php文件。現在,我有以下問題:如何在AJAX調用中獲取php類方法?

我做一個AJAX調用,也就是說,PHP文件的login.php通過

$.post('http://example.com/php/login.php', 
{  

}).success(
    function(data){ 

      console.log(data); 

}).error(
    function(data){ 
     //return error 
     console.log("Error post ajax ");   
},'json'); 

在login.php中我想用類的方法,其中的類寫在另一個php文件,class.php。 所以login.php中看起來像這樣

<?php 

    require_once('http://example.com/php/class.php'); 

    $test = $class->test(); 

    echo json_encode($test); 

?> 

和class.php看起來是這樣的:

<?php 
class CLASS { 

     public function test(){ 
      echo "test"; 
     } 
} 

$class = new CLASS; 
?> 

但我不能使用的方法測試()在類CLASS。如果我在login.php文件中寫入CLASS,當然可以,但這不是我想要的。

有沒有人對我如此解決這個問題?

+0

沒有在login.php中實例化類的原因是什麼?你應該保持你的PHP文件儘可能模塊化,並讓它們只做一件事和一件事。 (如果它的一個類,它應該只是一個類的定義等) – eluong 2014-08-28 14:19:19

回答

2

你應該按照慣例在login.php中實例化類。

此:

$test = $class->test(); 

應該是這樣的:

$test = new CLASS(); 
$test->test(); 

我覺得你說這是不是你想要的,所以這可能會解決您的問題:

你沒有申報$ class變量正確:

This:

$class = new CLASS; 

應該是這樣的:

$class = new CLASS(); 
+0

感謝您的評論。我想知道爲什麼我不應該在課後才實例化這個類? 但是,除此之外,這也不適用於phonegap應用程序... – Kaba19883 2014-08-28 14:40:17

+0

爲了維護性和可讀性的目的。你想'包括'你的類定義,然後在你使用它的文件中實例化它。對不起,我不知道phonegap,所以我不能再幫你了。 phonegap是否允許在其HTML/JS文件中進行內聯PHP處理? – eluong 2014-08-28 14:49:22

+0

我認爲它不,但現在它工作。使用soulan提示來使用require_once中的原始服務器路徑,並在login.php中實例化它。非常感謝! – Kaba19883 2014-08-28 14:55:29

2

你需要學習一些基礎知識,例如從本教程http://tut.php-quake.net/de/,並得到一些東西直。你做的很多事情是完全錯誤的

require_once('http://example.com/php/class.php'); 你不包括像,你包括你的服務器上的原始路徑,而不是一個URL

require_once('/path/to/your/file/class.php'); 更多類似這樣的。

$test = $class->test(); 

這個時候你的函數看起來像

public function test(){ 
     echo "test"; 
    } 

這也將無法正常工作,你的函數返回值

public function test(){ 
     return "test"; 
    } 

達到你嘗試什麼....考慮首先得到一些基礎知識是我的第一個建議,請記住我只是想幫助你,因爲如果你沒有那些基礎知識並且知道你正在使用的語言,你會更頻繁地奮鬥;)

+0

偉大的提示!閱讀PSR編碼標準也可以給他一些好的指導! http://www.php-fig.org/psr/ – eluong 2014-08-28 14:25:49

+0

我寫得有點太快了。當然,這個功能肯定會有回報。我明白你的意思是require_once,我也在我的網站中使用它。但phonegap中的問題是,所有文件都是html,css或js文件。那麼,我怎樣才能訪問class.php,我在這個類中有幾個函數? – Kaba19883 2014-08-28 14:32:48

+0

你只需要一個服務器來處理php文件,phonegap不能做到這一點,或者你有iOS的情況下寫你想要在objective-c中動態的這部分,或者在java的情況下android連接到它你用手機做的東西 – Soulan 2014-08-28 14:35:30