2010-11-09 9 views
1

Je suis confus avec le traitement de la réponse du serveur, lors de la soumission d'une requête AJAX. Ce que je voudrais faire, c'est une mise à jour d'une table en l'effaçant et en insérant les nouvelles.Accéder à la réponse AJAX et mettre à jour la table avec de nouvelles valeurs

Le code suivant du contrôleur donne un resonse à une demande ajax, triplets est une liste:

def resultsAjax = { 
    def triples = linkedDataService.getRemoteTriplesTable("Student4") 
    render(template:'tripleResultsTable', model:[triples:triples]) 
} 

C'est la forme:

<g:form action="results"> 
    <label for="id">Resource ID </label> 
    <g:textField name="id" /> 
    <g:submitToRemote value="search" update="resultsAjax" 
        url="[controller:'tripleProperty', action:'resultsAjax']"/> 
</g:form> 

Le tableau ci-dessous:

<g:render id="resultsAjax" template="tripleResultsTable" model="${triples}"/> 

Comment puis-je accéder à la liste des réponses du serveur?

EDIT:

Il fonctionne plus ou moins, mais chose étrange est que la table est pas mis à jour, mais les nouvelles valeurs sont au-dessus de la table ...

alt text

Le modèle est ceci:

<g:each in="${triples}" status="i" var="tripleProperty"> 
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}"> 

    <td>${tripleProperty.property}</td> 

    <td>${tripleProperty.value}</td> 

</tr> 

A-t-il besoin de plus de code que render (template ..) pour remplacer les valeurs de la table?

Répondre

1

À quoi ressemble votre modèle tripleResultsTable.gsp? Vous avez probablement le modèle attribut pour ressembler à ce

<g:render id="resultsAjax" template="tripleResultsTable" model="${[triples:triples]}" /> 

Ensuite, dans votre modèle, vous pouvez utiliser

<g:each in="${triples}">...</g:each> 

à ouput les éléments TR/TD vous voulez

acclamations

Lee

Questions connexes