Prototype.js: updater onsuccess getting data?

I’ve started with the samples included with prototype.js which has the following code in the fillin example (a portion of which I want to isolate into its own function).

The original code looks like this (red is what I want to isolate):


function dofill( ) {
  new Ajax.Updater( 'result', 'getdata.php', { method: 'post', parameters: $('myform').serialize(),
  onSuccess: [COLOR="Red"]function( transport ) {
  $('elFirst').value = transport.responseXML.getElementsByTagName('first')[0].firstChild.nodeValue;
  $('elLast').value = transport.responseXML.getElementsByTagName('last')[0].firstChild.nodeValue;
  $('elEmail').value = transport.responseXML.getElementsByTagName('email')[0].firstChild.nodeValue;
  }[/COLOR] } );
}

What I created was this:


function fill_in(transport) {
  $('elFirst').value = transport.responseXML.getElementsByTagName('first')[0].firstChild.nodeValue;
  $('elLast').value = transport.responseXML.getElementsByTagName('last')[0].firstChild.nodeValue;
  $('elEmail').value = transport.responseXML.getElementsByTagName('email')[0].firstChild.nodeValue;
}
function dofill() {
  new Ajax.Updater( 'result', 'getdata.php', { method: 'post', parameters: $('myform').serialize(),
  onSuccess: function ( transport ){
      fill_in(transport);
  } } );
}

I cant seem to get this to work… but I’m not getting any errors either. The idea is to make the fill_in() independent so that it can be easily changed and updated and this allows the dofill() to be stuck in a .js file.

I dont understand why transport wont just pass as a variable. How do I do this?

Thanks,

Pete