Unfortunately, this won't work quite right because you're dealing with table elements. You're creating a div and setting it's html to the response html, but the problem is that many browsers will wrap table fragments in table and tbody tags. You don't want that. You can use the new Elements.from method that's coming in the next version of MooTools More:
http://github.com/mootools/mootools-more/blob/master/Source/Element/Elements.From.js If you include that, then you can do: onSuccess: function(responseText){ var elements = Elements.from(responseText); elements.inject($('id_from_tr'), 'after'); // or 'before' } 2009/9/10 Fábio M. Costa <[email protected]> > To do this without Request.HTML you would need to get the response and set > the html of a div then grab all the childElements from this div, now you > have the same as responseTree from the request.HTML. > > with Request: > onSuccess: function(responseText){ > var tmpDiv = new Element('div', {'html': responseText}); > var responseTree = tmpDiv.getChildren(); > > responseTree.inject($('id_from_tr'), 'after'); // or 'before' > } > > > > -- > Fábio Miranda Costa > Solucione Sistemas > Front-End Engineer > http://meiocodigo.com > > > 2009/9/10 Fábio M. Costa <[email protected]> > > Hmm got it. >> Then you will need Request.HTML. It will transform you response into html >> then you just get the row you want and inject the new nodes that came from >> the responseTree and injectAfter or before it. >> something like this: >> >> onSuccess: function(responseTree){ >> $$(responseTree).inject($('id_from_tr'), 'after'); // or 'before' >> } >> >> >> -- >> Fábio Miranda Costa >> Solucione Sistemas >> Front-End Engineer >> http://meiocodigo.com >> >> >> On Thu, Sep 10, 2009 at 5:49 AM, darpi <[email protected]> wrote: >> >>> >>> Thanks Fàbio, >>> I'd like to inject the rows in a table (tbody and thead) >>> already populated, so the table is already created in the DOM. >>> So the inject would be after a row already present. >>> This--> $('id_of_tbody_or_thead').set('html', responseText); would add >>> a row to a table but not to a specific position in the table, for >>> example after row with id='dsdds' or not? >>> >>> So If I'd like to add a row from plain text with TH tags at a specific >>> location how can I do? >>> >>> Thanks, Dario >>> >>> On Sep 9, 5:50 pm, Fábio M. Costa <[email protected]> wrote: >>> > You can insert this into a valid table that is still inserted into the >>> DOM. >>> > So you would do someting like: >>> > >>> > $('id_of_tbody_or_thead').set('html', responseText); >>> > >>> > Note that as i said the tbody or thead should be still into the DOM >>> into a >>> > table, or as you said you will lose the 'th' tags. >>> > >>> > -- >>> > Fábio Miranda Costa >>> > Solucione Sistemas >>> > Front-End Engineerhttp://meiocodigo.com >>> > >>> > On Wed, Sep 9, 2009 at 12:40 PM, darpi <[email protected]> wrote: >>> > >>> > > Dear All, >>> > > maybe is a silly question, but I can't figure out how to >>> > > have an element from a responseText from Request. >>> > > I know that I can use request.html, but this can help me better >>> > > understand some html/javascript/mootools activities. >>> > >>> > > I receive for example from a request this code: >>> > > <tr><th>mutuls</th><th>you are welcome</th></tr> >>> > > <tr><th>mutuls2</th><th>you are welcome 2</th></tr> >>> > > <tr><th>mutuls3</th><th>yoou are welcome again</th></tr> >>> > >>> > > In the request.... >>> > > onSuccess: function(responseText, responseXML) { >>> > >>> > > I'd like to inject these rows inside an exiting table after an >>> > > element. >>> > >>> > > It would be: >>> > > myresponseTextElement.inject(myTableRow,'after') >>> > >>> > > The question is: how obtain myresponseTextElement from responseText? >>> > >>> > > var myresponseTextElement=new Element('tr') >>> > > myresponseTextElement.set('html',responseText); >>> > > This way I loose all <th> tags. >>> > >>> > > Any suggestions??? >>> > >>> > > } >>> > >>> > > Thanks, Dario >>> > >>> > >>> >> >> >
