Начнем с модулей с с использованием AJAX.
Обзовем его mod_newscount.
Структура файлов следущая
в папке mod_newscount имем файлы
--mod_newscount.php
--mod_newscount.xml
--ajax.php
1.)--- Работаем с файлом mod_newscount.php ----
Подключаем библиотеку
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
дальше код на собития которого мы будем привязывать наш аякс
<select id="selectme" >
<option>Пункт 1</option>
<option>Пункт 2</option>
<option>Пункт 3</option>
<option>Пункт 4</option>
<option>Пункт 5</option>
<option>Пункт 6</option>
</select>
Дальше пишем сам код отправки запросса
<script type="text/javascript">
$(document).ready(function(){
$('#selectme').click(function(){ // срабатывает при клике на ссылку
var value = $('#selectme').attr('value');// получаем значение аттрибута rel
// добавляем в блок #loader картинку, загрузка
var dataString = value; // формируем строку запроса по типу GET
//alert(dataString);
$.post(
"<?php echo JRoute::_('/modules/mod_newscount/ajax.php?data=1'); ?>",
{
param1: "parametru",
param2: dataString
},
onAjaxSuccess
);
function onAjaxSuccess(data)
{
// Здесь мы получаем д анные, отправленные сервером и выводим их на экран.
//alert(data);
$("#uck").html(data); // в коде модуля должен быть <div id="uck"></div>
}
event.preventDefault(); // возвращает FALSE
})
})
</script>
2. --- Работаем с файлом AJAX.php ---
Запрос отправлена на AJAX.php
привожу полностью код
<?php
// Set flag that this is a parent file
define( '_JEXEC', 1 );
define('JPATH_BASE', preg_replace('|\Smodules\Smod_.*?\Sajax.php|i', '', __FILE__));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
JPluginHelper::importPlugin('system');
jimport( 'joomla.application.module.helper' );
preg_match('|\Smodules\Smod_(.*?)\Sajax.php|si', __FILE__, $buff);
$module = JModuleHelper::getModule( $buff[1], '' );
header("Content-type: text/plain; charset=utf-8");
header("Cache-Control: no-store, no-cache, must-revalidate");
//echo JModuleHelper::renderModule( $module, array('style' => 'none') );
$r=$_GET['data'];
$r2=$_POST['param1'];
$r3=$_POST['param2'];
//$r3=$_POST['param'];
echo 'hello world '.$r2.'--'.$r3;
exit();
сдесь через $_POST[' '] получаем данные и работаем с ними. У нас мы ничего неизменяем
Обязательно в том месте в модуле шде мы хотели бы отображать рез запросса должен быть блок <div id="uck"></div>, куда мы подгрузим данные с AJAX.php