[TYPO3-ect] ajax and class per controller model

Steffen Kamper steffen at sk-typo3.de
Fri Jun 29 09:54:30 CEST 2007


Hi,

ok - here is an example for populating a selectbox using eID. There is no 
need fo xajax as the Ajax-Object is defined in prototype library, that has 
to be included first
<script type="text/javascript" src="typo3/contrib/prototype.js"></script>
next is the use of some JS in page
function getCities() {

 var url = "index.php";
 var par1 = 2;
 var par2 = document.getElementById('some_id').value;
 var pars = "eID=myext&par1="+par1+"&par2="+par2;
 var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, 
onComplete: updateCities});
}


function updateCities(orgRequest) {
 var xmldoc = orgRequest.responseXML;
 var result = xmldoc.getElementsByTagName("data")[0].firstChild.data;
 document.getElementById('citydiv').innerHTML = result;
}
On element in the page uses the request getCities(); - in my case a 
onchange-event.

Last step is to include an ajax.php (as example). This file has to be 
registered, i use the ext_localconf.php:

$TYPO3_CONF_VARS['FE']['eID_include']['myext_ajax'] = 'EXT:myext/ajax.php';

'myext_ajax' is example, it has to be unique.

Ok, now we can do all the needed stuff in ajax.php:

<?php

// Exit, if script is called directly (must be included via eID in 
index_ts.php)
if (!defined ('PATH_typo3conf')) die ('Could not access this script 
directly!');
// Initialize FE user object:
$feUserObj = tslib_eidtools::initFeUser();
// Connect to database:
tslib_eidtools::connectDB();

$par1 = intval(t3lib_div::_GET('par1'));
$par2 = intval(t3lib_div::_GET('par2'));

// now generating the output
$res = '<select><option value="">alle</option></select>';

// and fire ...
$ajax_return_data = t3lib_div::array2xml(array('data'=>$res));
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate( "D, d M Y H:i:s" ) . 'GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Content-Length: '.strlen($ajax_return_data));
header('Content-Type: text/xml');

echo $ajax_return_data;
exit;
?>

thats it.
vg  Steffen

"Christian Welzel" <gawain at camlann.de> schrieb im Newsbeitrag 
news:mailman.1.1183098354.5232.typo3-team-extension-coordination at lists.netfielders.de...
> Steffen Kamper wrote:
>
>> there are some nice functions for the ajaxfile. If you want i can post a
>> small example.
>
> Please do so.
> Would be perfect, if your example integrates xajax :)
>
> -- 
> MfG, Christian Welzel
>
>  GPG-Key:     http://www.camlann.de/key.asc
>  Fingerprint: 4F50 19BF 3346 36A6 CFA9 DBDC C268 6D24 70A1 AD15 




More information about the TYPO3-team-extension-coordination mailing list