2013-04-26 112 views
2

我一直在尋找一種在typo3擴展中使用某種AJAX功能的方法。後端擴展中的Typo3 Ajax

我想在我的分機,選擇2場 「汽車」 - 品牌和型號(型號都與汽車數據庫):

表品牌:

  • UID

  • 標籤

錶款:

  • UID

  • 標籤

  • 品牌(UID從品牌表)

在後臺,當我創建一個新的 「車」,首先我選擇一個品牌。然後,我希望模型字段自動更新並顯示此選定品牌的所有型號的列表

我找到了doc但我不知道如何處理客戶端。在哪個文件中,我必須添加以下行,以及JavaScript在哪裏去:

$this->doc->loadJavascriptLib('contrib/prototype/prototype.js'); 
$this->doc->loadJavascriptLib('js/common.js'); 
+0

您正在使用哪種TYPO3版本?這是一個後端模塊還是前端插件?也許在Fronend有jQuery? – Merec 2013-04-29 06:58:47

+0

typo3 4.7。它的前端插件(與kickstarter),但我想在這個插件的後端使用ajax – user2147708 2013-05-02 11:04:27

回答

1

首先..你一直在引用的文檔不是正確的路徑。請參閱此documentation

以下是您的上下文中要遵循的基本步驟。

1)在ext_tables.php

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerAjaxHandler (
    'controllername::function_name', 
    'PITS\\PitsDownloadLogin\\Controller\\controllername->function_name' 
); 

上述「函數名」註冊調用Ajax躺在內部「控制器」定義中的AJAX調用要被執行的邏輯。

2)定義你的Ajax調用 < - 這部分是你在談論

肯定你有一個腳本文件,我的意思是哪裏來的onclick觸發的功能被寫入JS文件的客戶端。在你的情況下,在選擇品牌的第一個酒吧的'onChange'中定義一個js函數。在這個函數裏定義ajax。

$.ajax({ 
type: 'GET', 
url: TYPO3.settings.ajaxUrls['controllername::function_name'], 
data: { 
    "page" : page, 
    "limit": limit, 
}, 

現在,下列參數將在相應控制器的'function_name'中被接收。 如你所願處理。

3)控制器存根

/** 
* Renders the table as pagination occurs 
* 
* @param array $params Array of parameters from the AJAX interface, currently unused 
* @param \TYPO3\CMS\Core\Http\AjaxRequestHandler $ajaxObj Object of type AjaxRequestHandler 
* @return void 
*/ 
public function function_name($params = array(), \TYPO3\CMS\Core\Http\AjaxRequestHandler &$ajaxObj = NULL) {  

    $limit = GeneralUtility::_GP('limit'); 
    $page = GeneralUtility::_GP('page'); 
     **** Code Processing *** 
    $result = result of whole processing 
    $ajaxObj->addContent('success', $result); // In JS 'success' is the final result passed from here 
    $ajaxObj->setContentFormat('json');  // Writing back as JSON array 
} 

在您的JS文件,你可以決定通過休息,

success: function (success) { 
    console.log(success); 
}, 
error: function (error) { 
    console.log(error); 
} 

我希望你偏離正確的方向..快樂編碼伴侶。 !