2014-12-28 1 views
0

Как я могу использовать ajax в Typo3 Backend для вызова функции контроллера моего собственного расширения?Ajax call TYPO3 Функция контроллера

Я хочу выполнить поиск по моему репозиторию.

Например:

У меня есть поле ввода, где можно ввести имя. Затем функция поиска должна искать в моем репозитории для этого имени.

Моя проблема заключается в том, как установить вызов ajax для связи с функцией контроллера?

+0

С какой проблемой у вас проблема? – biesior

+0

как URL должен выглядеть '$ .ajax ({ типа: "POST", URL: URL, данных: данные, успеха: успех, DATATYPE: DATATYPE });' – Felix

ответ

1

В модуле бэкэнда это довольно просто, зарегистрировать новое действие в контроллере, то есть: nameAutocomplete (не забудьте добавить это в список разрешенных действий в ext_tables.php)

так что вы можете создать надлежащее URL с ViewHelper:

<script> 
    var MY_AJAX_ACTION_URL = '<f:uri.action action="nameAutocomplete" />'; 

    jQuery.ajax({ 
     type: 'POST', 
     url: MY_AJAX_ACTION_URL 
    }); 

</script> 

действие образец довольно прямой, т.е. если вам нужен выход JSON, вы можете сделать это прямо:

public function nameAutocompleteAction() { 
    $out = array('status' => 'I am alive'); 

    // Process your POSt data here 

    header('Content-Type: application/json'); 
    return json_encode($out); 
} 

Примечание: вам нужно использовать viewhelper для создания правильного URL-адреса, поскольку он создает токен модуля и другие определенные части.

+0

что выглядит действительно легко ... спасибо! Я попробую! – Felix

+1

Да, это прекрасно работает, но я не могу прочитать данные моего сообщения. я сделать это: 'jQuery.ajax ({ типа: 'POST', URL: MY_AJAX_ACTION_URL, данных: "nextInterval" });' но я не могу получить данные в Backend. Я пробовал это: '$ this-> request-> hasArgument ('nextInterval')' – Felix