Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Diplay DataObject in a popup via ajax?

Go to End

6 Posts   2785 Views


Community Member, 165 Posts

10 July 2009 at 5:12am

I have a DataObject that contains some HTMLText and possibly a link to a file for download. When a front end user clicks a link I want a popup to show up and display the DataObject via an ss template. I am not sure how to go about this.

I do know how to make jQuery send an ajax request to a helper Controller that gets the DataObject that the user clicked on. However I don't know how to write the code that will render the DataObject with a template and send the link back to the client computer so that it can open a lightbox or similar with the url of the rendered data. I am not using a PageType for the DataObject.


Community Member, 5 Posts

10 July 2009 at 2:06pm

I'm trying to do the exact same thing and I am equally as confused.. :(


Community Member, 168 Posts

1 September 2009 at 11:09pm

i am looking for some advice, too. How do implement an which does not interherit from page but from dataobject class?

Does anybody know a good tutorial?


Community Member, 541 Posts

2 September 2009 at 6:14am

This may Help

Essentially you have to tell the object if its called with AJAX to render the data with differently.

There's a lot of good stuff in the Recipes section, but the Link to them isn't as obvious as it should be

Also check, it has some really well written tutorials explaining stuff better than some of the documentation


Community Member, 168 Posts

3 September 2009 at 12:26am

Hi Zenmonkey,

thanks for your reply. I went through the ajax_basics and everything is working fine. But i am not sure where to go from here? I have got Template that will be loaded into a <div> in But what i need is to open the thickbox and load the into the thickbox.

Link to open thickbox:
<a href="/silverstripe/ajax.php?refid=$ID&#38;height=381&#38;width=613" class="thickbox" title="$Headline">

Link to load asynchronisly content into <div>:
<a href="$URLSegment" onclick="jQuery('#ajaxContent').load('$URLSegment/showImage'); return false;" >

Can anybody help?

Greetings, Carsten.


Community Member, 541 Posts

3 September 2009 at 1:52am

Edited: 03/09/2009 1:53am

I've never used Thickbox. I usually go with FaceBox or ColorBox. But you should just be able to structure your Thick box URL something like:

<a href="$Link?height=220&width=400" class="thickbox" title="$Headline">$Title</a>  

But I'm not sure how the wrapping controls are structured. You're using $URLSegment which returns the Current Page Segment (ie everything after '/silverstripe/' which isn't the full link. You should be forming the link to point to the Dataobject as if it were a page. Silverstripe will see that the call is an AJAX call and render it accordingly. The only problem I can see is Silverstripe may not like the URL Parameters, so another Model Box Plug-in may be more useful.

At least thats where I'd start. Right now I'm just using modal boxes to hold login and review forms. I use jQuery to hide the div's, that way if the user has Javascript disabled they can still access the content. I find the solution is simpler. I tend to avoid Ajax calls for SEO reasons, and better degradation.