2013-10-08 65 views
0

的Joomla user_id說明我在我的Joomla網站下面的PHP腳本file.php:獲取使用jQuery的阿賈克斯

$user = JFactory::getUser(); 
$usr_id = $user->get('id'); 

如果我直接運行它,使用HTML:

include_once "file.php"; 

它將獲得用戶ID,沒問題。

但是,如果通過一個Ajax請求運行它:

$.ajax({ 
    url: "other.php", 
... 

其中other.php是:

include_once "file.php"; 

我得到的錯誤:

Fatal error: Class 'JFactory' not found in file.php on line 3 

爲什麼?任何幫助!?

回答

4

您需要導入的Joomla庫,以使用JFactory類。要導入庫,請在文件頂部添加以下內容:

define('_JEXEC', 1); 
define('JPATH_BASE', dirname(__FILE__)).'/../..'); 

require_once (JPATH_BASE .'/includes/defines.php'); 
require_once (JPATH_BASE .'/includes/framework.php'); 
require_once (JPATH_BASE .'/libraries/joomla/factory.php'); 

$mainframe = JFactory::getApplication('site'); 
$mainframe->initialise(); 
+0

我用$ _SERVER ['DOCUMENT_ROOT']替換了JPATH_BASE,因爲它指向了錯誤的目錄。現在,它選擇了正確的,但我得到的錯誤:沒有找到配置文件,沒有可用的安裝代碼。正在退出... –

+0

你的Joomla文件夾的根目錄中有* configuration.php *嗎?導致這個錯誤通常意味着你不這樣認爲Joomla沒有安裝。順便說一下,你使用的是什麼版本的Joomla? – Lodder

+0

是的,我在根文件夾中有configuration.php。我使用J 2.5.14 –