2013-03-15 3 views
2

J'ai un Coldfusion cfc qui interroge une base de données pour des données. Je voudrais appeler ce cfc et afficher la réponse ajax dans un div. Finalement, je voudrais formater la réponse avec html. Actuellement, j'ai de la difficulté à afficher la réponse. C'est ce que j'ai jusqu'ici.affichant une réponse ajax avec jquery

Voici le cfc: Asset.cfc

<cffunction name="Asset" access="remote" returntype="array"> 
     <cfargument name="asset_id" type="string" required="yes"> 

     <!--- Define the local scope. ---> 
      <cfset var LOCAL = {} />  
      <cfset var qPics = "" /> 
      <cfset var result = arrayNew(1) /> 
      <cfset var PicStruct = '' /> 

     <cfquery name="Pics"> 
     SELECT DISTINCT aq.ID 
     FROM AAssignment a 
     INNER JOIN Assets aq ON aq.ID = a.Asset 
     WHERE a.AssetItem = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.assetgrp_id#">     
     </cfquery> 

     <cfloop query="Pics"> 
      <cfset PicStruct = StructNew() /> 
      <cfset PicStruct["value"] = ID /> 
      <cfset ArrayAppend(result,PicStruct) /> 
      </cfloop> 

     <cfset myResult="#result#"> 
     <cfreturn myResult> 
    </cffunction> 

Voici le jquery

<script> 
    var caseid = <cfoutput>'#URL.ID#'</cfoutput> 

    $.ajax({ 
      type:'GET', 
      url:'Asset.cfc?method=Asset&returnformat=json', 
      dataType: "json", 
      data: { 
       asset_id:  caseid, 
      }, 
      success:function(data) { 
      if(data) { // DO SOMETHING  
       $('#picoutput').html(data); 
      } else { // DO SOMETHING } 
      } 
     } 
     }); 
    </script> 

<div id="picoutput"></div> 

En ce moment, je reçois cette réponse en retour du CCAF à Firebug.

[{"value":"3277C2B9-155D-D714-40143A59A8290252"}] 

Cependant, il ne s'affichera pas dans la div.

+0

Ne pas oublier votre côlon demi après cette ligne var = CaseID « #URL .ID # '

+0

Rien à voir avec votre erreur, mais la fonction ne localise pas toutes les variables correctement. Le nom de la requête doit être 'qPic' (pas' Pic'). Aussi, vous pouvez vous débarrasser de la variable supplémentaire myResult et utiliser '' – Leigh

+0

@EvikJames J'essaie de faire 'var userObject = '# VARIABLES.customer #';' mais je suis toujours rien. Est-ce la bonne syntaxe? –

Répondre

6

Utilisez data.value

success:function(data) { 
    if(data) { // DO SOMETHING  
     $('#picoutput').html(data[0].value); 
    } else { // DO SOMETHING } 
    } 
+2

Il faudrait en fait 'data [0] .value', vous devez d'abord accéder à une partie du tableau, puis récupérer la valeur prop * –

+0

sympa! Je suis toujours vert à ce sujet. Y a-t-il une direction que je peux obtenir aussi loin que boucler sur les résultats? –

+0

@Chris utilise simplement une boucle javascript de base: 'for (var i = 0; i

3

utilisation en HTML si le type de données que vous envoyez une réponse en HTML

$.ajax({ 
     type:'GET', 
     url:'Asset.cfc?method=Asset&returnformat=json', 
     dataType: "html", //<---- here 
     data: { 
      asset_id:  caseid, 
     }, 
     success:function(data) { 
     if(data) { // DO SOMETHING  
      $('#picoutput').html(data); 
     } else { // DO SOMETHING } 
     } 
    } 
    });