首先..你一直在引用的文檔不是正確的路徑。請參閱此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);
}
我希望你偏離正確的方向..快樂編碼伴侶。 !
您正在使用哪種TYPO3版本?這是一個後端模塊還是前端插件?也許在Fronend有jQuery? – Merec 2013-04-29 06:58:47
typo3 4.7。它的前端插件(與kickstarter),但我想在這個插件的後端使用ajax – user2147708 2013-05-02 11:04:27