web-dev-qa-db-fra.com

Méthode getAjax () Joomla Ajax Module introuvable

Je n'ai aucune expérience avec Ajax et aucune expérience avec Joomla. J'ai réussi à créer mes propres modules Joomla sans problème. Aujourd'hui, j'ai essayé d'utiliser Ajax dans l'un de mes modules, mais je reçois une erreur: "Method getAjax does not exist.".

Voici mon helper.php

<?php

class ModDisplayVacancies
{
    public static function getAjax()
    {
       return "getAjax return";
    }

....
}

mon mod_display_vacancies.php

<?php

// No direct access
defined('_JEXEC') or die;
// Include the syndicate functions only once

$document = JFactory::getDocument();
require_once dirname(__FILE__) . '/helper.php';


$document->addStyleSheet('/Joomla/modules/mod_display_vacancies/css/styles.css');
$document->addScript('/Joomla/modules/mod_display_vacancies/js/custom.js');


$table = ModDisplayVacancies::createTable($params);

require JModuleHelper::getLayoutPath('mod_display_vacancies');

Et mon J avaScript:

jQuery(document).on('click', 'button[id=vacancies_next]', function(){

    console.log("next");

    var request = {
        'option' : 'com_ajax',
        'module' : 'display_vacancies',
        'data' : 5,
        'format': 'json'
    }

    jQuery.ajax({
        type: 'GET',
        data: request,
        success:function(responce){
            console.log("success");
            console.log(responce);
        },
        error:function(responce){
            console.log("error");
            console.log(responce);
        }
    });  


});

C'est assez étrange pour moi pourquoi je reçois dans la console "le succès" et ensuite une erreur:

console screenshot

4
VTodorov

Le nom de votre classe d'assistance doit être:

ModDisplayVacanciesHelper

Et le module doit être publié sur toutes les pages, sinon vous devez ajouter un ID de menu dans votre demande où le module est publié. Juste comme ça:

&Itemid=<menu id>
2
Webdesigner