Hi,

The usual thing would be to have a function that accepts the number
and does the work, and have both the event handler and the onSuccess
handler call it.

function doTheEditThing(num)
{
    // ...implementation...
}

...

onSuccess: function(response) {
    // ...do some checks on the response, and if valid:
    doTheEditThing(response.responseText);
}

...

Event.observe(therow, 'click', function(event) {
    doTheEditThing(this.id);
});

FWIW,
--
T.J. Crowder
tj / crowder software / com
Independent Software Engineer, consulting services available


On May 27, 11:28 pm, BrentNicholas <brentnicho...@gmail.com> wrote:
> Hi all,
>
> So I'm wondering what is best practice.
>
> I've got a table that users can click a row and get sent to an edit
> screen.
>
> I'm also sending the users to the same edit screen after data inserts.
>
> I'd like to use the same function to handle this. However, when you
> click the row it returns an event (from being observed). When you
> insert the data, the function that does this calls ajax.request and
> returns 'transport'. They both contain a number, though in different
> formats.
>
> So, what is best practice to handle this? The code below works fine if
> broken into two unique functions, one that handles transport and
> another that handles event. Seems really redundant to have two so
> similar.
>
> The following is a non-functional 'ideal':
>
> function editProfessionalOutreach(event,transport) {
>
>         var key_ts_prof_outreach_seq;
>
>         // from row click
>
>         try {
>                 var key_ts_prof_outreach_seq = this.id;
>         } catch (err) {
>                 // none
>         }
>
>         // from insert function
>
>         try {
>                 var key_ts_prof_outreach_seq = transport.responseText;
>         } catch (err) {
>                 // none
>         }
>
>         alert('last:'+key_ts_prof_outreach_seq);
>
>          new Ajax.Request('dsp_editProfessionalOutreach.cfm?
> KEY_TS_PROF_OUTREACH_SEQ='+key_ts_prof_outreach_seq+'&'+cfSession,
>          {
>                 method: 'get',
>                 onSuccess: outputProfessionalOutreach,
>         onComplete: attachProfessionalOutreachEditListeners,
>                 onFailure: function(r) {
>              throw new Error( r.statusText );
>            }
>          }
>        );
>
> }
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to