J'essaie de créer mon propre module ajax. Lorsque je soumets le formulaire, je reçois une erreur 404 post. Une idée de ce qui s'est mal passé?
C'est ce que j'ai fait jusqu'à présent.
mod_ajax_test.xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="module"
version="3.0"
method="upgrade">
<name>Ajax Test</name>
<creationDate>February 7, 2017</creationDate>
<author>Striker8472</author>
<authorUrl>http://doa-x.com</authorUrl>
<copyright>Copyright (C) 2017 doa-x.com. All rights reserved.</copyright>
<license>GNU General Public License version 2, or later.</license>
<version>0.0.1</version>
<description>Ajax Test</description>
<files>
<filename module="mod_ajax_test">mod_ajax_test.php</filename>
<filename>helper.php</filename>
<folder>tmpl</folder>
</files>
</extension>
mod_ajax_text.php
<?php defined('_JEXEC') or die;
/**
* File mod_ajax_test.php
* Created 2/7/17 17:12 PM
*/
// Include the helper.
require_once __DIR__ . '/helper.php';
// Instantiate global document object
$doc = JFactory::getDocument();
$js = <<<JS
(function ($) {
$(document).on('click', 'input[type=submit]', function () {
var value = $('input[name=data]').val(),
request = {
'option' : 'com_ajax',
'module' : 'mod_ajax_test',
'data' : value,
'format' : 'raw'
};
$.ajax({
type : 'POST',
data : request,
success: function (response) {
$('.status').html(response);
}
});
return false;
});
})(jQuery)
JS;
$doc->addScriptDeclaration($js);
require JModuleHelper::getLayoutPath('mod_ajax_test');
helper.php
<?php defined('_JEXEC') or die;
/**
* File helper.php
* Created 2/7/17 17:12 PM
*/
class modAjaxTestHelper
{
public static function getAjax()
{
$input = JFactory::getApplication()->input;
$data = $input->get('data');
return 'Your text here: ' . $data . '!';
}
}
tmpl/default.php
<?php defined('_JEXEC') or die;
/**
* File default.php
* Created 2/7/17 17:12 PM
*/
?>
<form>
<input type="text" name="data">
<input type="submit" />
</form>
<div class="status"></div>
Trouvé le problème par moi-même.
'module' : 'mod_ajax_test',
doit être
'module' : 'ajax_test',