I call ajax from select2 in backoffice so I create hook
public function hookActionAdminControllerSetMedia() { MediaCore::addJsDefL('my_search_token', $this->context->link->getAdminLink('Psb2BAjaxModuleAdminController')); $this->context->controller->addCSS(_PS_BO_ALL_THEMES_DIR_ . 'default/js/select2-full/dist/css/select2.min.css','all'); $this->context->controller->addJS(_PS_BO_ALL_THEMES_DIR_ . 'default/js/select2-full/dist/js/select2.min.js'); $this->context->controller->addJS(_PS_BO_ALL_THEMES_DIR_ . 'default/js/tree.js'); $this->context->controller->addCSS($this->_path . 'views/css/' . $this->name . '.css', 'all'); }
And In my Module psb2b/controllers/admin/ajax.php
namespace Company\PSB2B\Controller\admin; use Symfony\Component\HttpFoundation\JsonResponse; class Psb2BAjaxModuleAdminController extends ModuleAdminController { public function initContent() { $this->ajax = true; parent::initContent(); return new JsonResponse('test'); } }
And my js
$(document).ready(function(){ $('#category_features').select2({ width: 'resolve', ajax: { type: 'POST', url: my_search_token, dataType:'json', delay: 250, data: function (params) { return { q: params.term // search term }; }, success: function (result) { console.log(result); } } }); });
But I got error message Controller Psb2BAjaxModuleAdminController not found