hkievet
hkievet

Reputation: 169

Grails Render Partial Template to Div

I have a form page where the user selects a filter and a table on the bottom of the page updates. Each line in the table has a hyperlink in column one that associates a line item to an item in the database. I am not using GORM.

I need to be able to send the current filters to the controller via AJAX (functioning). Then I need to render a partial template (to a div) that loads the data created by a query based on the client's request parameters.

GSP:

....
<button onClick="generate_table()" class="pure-button">Generate Table</button>
...
<div id="selection_table">This should load with data</div>
...

JS:

//Link for AJAX
    var url =  "${g.createLink(action:'generate_table', controller: "statusReports")}";
    //The actual call
    $.getJSON(url, {
        period: JSON.stringify($("#period").val()),
        ...
        ...
    }, function(data) {
        $('#selection_table').empty();
    }).done(function(data) {
        //I need to load the template at this point?
    })

Controller:

def generate_table(){
    def table_data = statusReportsService.generate_titles(params)
    // Table data is already a map
    // What do I need to render here?  The template is named _selectionTable.gsp and should use table_data to generate html.
}

Partial:

I still haven't written the code for this yet. For now it is just some random text to see if I can even load the template when I press the button

Upvotes: 0

Views: 1698

Answers (1)

Joshua Moore
Joshua Moore

Reputation: 24776

In your controller:

render(template: 'selectionTable', model: table_data)

In your GSP/HTML you need to use $.get and use the following:

$('#selection_table').html(data)

That should do the trick!

Upvotes: 1

Related Questions