2017-06-18 8 views
0

J'ai liste des données comme ...
appel Ajax pour les données de la table jusqu'à ce que le texte ne se trouve pas

| Coloumn1 | Coloumn2 | Coloumn3 | 
|----------|----------|-----------| 
| val1  | val2  | val3  | 
| val1  | ' '  | val3  | 

Le tableau ci-dessus, je l'ai sur le formulaire soumettre, maintenant, après quelque temps, je trouve la valeur de Coloumn2 au lieu de ''/BLANK, donc je veux le mettre dans la table sans recharger la page.

J'ai la structure suivante de code ...

myInstance.gsp

<tbody id="myInstanceTData"> 
<g:each in="${myInstanceList}" var="myInstance"> 
<tr id="${myInstance?.id}"> 
     <td class="align-center zoomout"> 
     <td class="align-center">${myInstance?.text?:"N/A"}</td> 
     </td> 
     <td class="align-center" style="color:${myInstance?.objectColor}"> 
      <g:if test="${myInstance?.object}"> 
       ${myInstance.object} 
      </g:if> 
      <g:else> 
       ${"Second Analytics"}<br>${"In-Progress"} 
       <img src='../assets/transfer.gif' style="height: 18px;"/> 
      </g:else> 
     </td> 
     <td class="align-center" style="color:${myInstance?.objectColor}">${myInstance?.confidence?:"N/A"}</td> 
    </tr> 
</g:each> 
</tbody> 

Actuellement, j'ai écrit que ${"Second Analytics"}<br>${"In-Progress"} ici, je requiers appel à l'action du contrôleur jusqu'à ce que je ne reçois pas de texte le même.

Merci ...

+0

L'utilisation datatables avec le traitement côté serveur serait idéal ici https://datatables.net/examples/data_sources/server_side.html, vous pouvez utiliser un rafraîchissement périodique de la table par exemple https://datatables.net/reference/api/ajax.reload() –

Répondre

0

J'ai essayé le code ci-dessous. Fonctionne bien pour moi.

function fetchColumn2() { 
    setInterval(loadColumn2, 3000,id);  
} 

function loadColumn2(id){ 
//Make ajax call and get response 
$.ajax({ 
     url:URL,//URL to action in controller 
     data: {id:'1'}, 
     success: function(resp){ 
      console.log(resp.id); 
      console.log(resp.column2); 
      var column2Val = resp.column2; 
      if(column2Val != ""){ 
       //TODO: Set value to your table data 
       clearInterval(this); 
      }     
     } 
    }); 
} 
+0

Merci @Ankit ça marche pour moi –