В моем настраиваемом поле / edit. php Я перечислил сотрудников и добавил несколько полей фильтра: - для имени, - фамилии - и категории. Когда я начинаю вводить одно из полей фильтра, выполняется вызов Ajax.
Шаг 1: Пользовательское поле с кодом jQuery. ajax:
var token = jQuery("#token").attr("name");
var getUrl = "index.php?option=com_component&task=employeesearch&format=json";
jQuery.ajax({
type: "POST",
url: getUrl,
data: {[token]: "1", task: "employeesearch", format: "json", arfilter: arfilter},
success: function(result, status, xhr) { displaySearchResults(result); },
error: function() { console.log(\'ajax call failed\'); },
});
(Массив arFilter имеет значения полей фильтра.)
Шаг 2: Главный контроллер: В главном контроллере добавлена функция employeeesearch. Дисплей функции «по умолчанию» также существует в этом главном контроллере. Задача: «employeeesearch».
public function employeesearch() {
echo '<script>alert("DEBUG: main controller.php employeesearch function")</script>';
if (!JSession::checkToken('get')) {
echo new JResponseJson(null, JText::_('JINVALID_TOKEN'), true);
} else {
parent::display();
}
}
После выполнения вызова Ajax в главном контроллере не выполняется ни одной функции (отображение «по умолчанию», employeeesearch).
Шаг 3: Admin / com_comoponent / views / employee / view. json. php У меня нет кода здесь, сначала я хочу узнать, что это выполняется. Я думаю, если правильно прочитать документацию, следует выполнить, потому что формат json.
class ComponentViewEmployee extends JViewLegacy {
function display($tpl = null) {
//$input = JFactory::getApplication()->input;
echo "view.json.php - display function";
}
Шаг 4: Admin / com_comoponent / models / employee. php
А пока я добавил сюда функцию getEmployeeSearchResults
public function getEmployeeSearchResults($arEmployee) {
try {
echo "model getemployeesearchResults($arEmployee) {
result = "Query executed";
}
catch (Exception $e) {
$msg = $e->getMessage();
JFactory::getApplication()->enqueueMessage($msg, 'error');
//$results = null;
$result = null;
}
return $result;
}
В журнале консоли я получаю каждый раз "Ajax call failed", который является сообщением об ошибке вызова Ajax ,
Я попытался проанализировать его с помощью "инструментов разработчика браузера", там я вижу "http://jcbworkshop2/administrator/index.php?option=com_component&task=employeesearch&format=json". В XHR сообщение 404.
Я следую за сборкой joomla MVC . Это руководство по интерфейсу, но я думаю, что оно более или менее одинаково, но, возможно, НЕ?
Все примеры, которые я нашел с помощью googling, основаны на представлении внешнего интерфейса.
На данный момент я не знаю, как я могу сделать следующий шаг ????? Как я могу узнать, где это go неправильно?
Я надеюсь, что кто-то может помочь мне дальше и указать мне направление, чтобы я мог идти дальше. Или, если я двигаюсь в совершенно неправильном направлении, в сложное, я надеюсь, что вы дадите мне знать, потому что, конечно, я могу добавить файл, такой как employeeesearch. php, который напрямую вызывается из вызова ajax и будет вернуть отфильтрованные значения запроса. Это также работает, но я больше не работаю в структуре фреймворка Joomla ...
Заранее спасибо
Нико