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:
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>