Foros del Web » Creando para Internet » Flash y Actionscript »

Problema httpservice pasar los datos a un datagrid

Estas en el tema de Problema httpservice pasar los datos a un datagrid en el foro de Flash y Actionscript en Foros del Web. Hola amigos estoy tratando de sacar datos de un api y al pasarlos a un datagrid no me funciona , si funciona en un textaea ...
  #1 (permalink)  
Antiguo 18/11/2009, 13:06
 
Fecha de Ingreso: agosto-2006
Mensajes: 113
Antigüedad: 17 años, 8 meses
Puntos: 1
Problema httpservice pasar los datos a un datagrid

Hola amigos estoy tratando de sacar datos de un api y al pasarlos a un datagrid no me funciona , si funciona en un textaea soy novato y no se en ke fallo si alguien puede darme una mano lo agradeceria .

Saludos.

Código:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
  xmlns:mx="http://www.adobe.com/2006/mxml" 
  layout="absolute" width="100%" 
  creationComplete="init()">
  <mx:Script>
    <![CDATA[
      import mx.collections.ArrayCollection;
      import flash.net.navigateToURL;
      import mx.controls.Alert;
      import mx.rpc.events.ResultEvent;
      import mx.rpc.events.FaultEvent;
      
      
      [Bindable]
   	  private var proxyUrl:String;
     
      private function init():void
      {
      	proxyUrl = Application.application.parameters.proxyUrl;
      	
      	 }
      
  
		
		private var evedatos:ArrayCollection
		private function resultHandler(event:ResultEvent):void
		{
		evedatos = event.result.evec_api.quicklook.sell_orders.order;
		grilla.dataProvider = "evedatos";
		
		}
		
	
   
       private function rssResults(e:ResultEvent):void
      {
        var rss:XML = new XML(e.result);
        rssOutput.text = rss.toXMLString();
         }
      

	
      private function rssFault(e:FaultEvent):void
      {
        Alert.show(e.fault.rootCause.toString());
      }
      

    ]]>
  </mx:Script>

  <mx:HTTPService 
    id="proxyServic" method="POST" resultFormat="xml" 
    url="proxy.php" 
    result="rssResults(event)" fault="rssFault(event)">
    <mx:request>
      <url>http://api.eve-central.com/api/quicklook?typeid=34</url>
    </mx:request>
  </mx:HTTPService>
  
    <mx:HTTPService 
    id="proxyService" method="POST" resultFormat="xml"
    url="proxy.php" 
    result="resultHandler(event)" fault="rssFault(event)">
    <mx:request>
      <url>http://api.eve-central.com/api/quicklook?typeid=34</url>
    </mx:request>
  </mx:HTTPService>
  
  
     <mx:VBox width="100%" height="100%">
     

     	  <mx:Button x="153" y="36" label="ProxyTextArea" width="160"
      click="{proxyService.send()}"/>
   
   	  <mx:Button x="153" y="36" label="ProxyDatagrid" width="160"
      click="{proxyServic.send()}"/>
      
      
  <mx:Panel x="0" y="0" width="100%" height="100%" 
    layout="absolute" title="Cross Domain Proxy Demo">
  
      
      
   
      
   <mx:VBox width="100%">
   	
 
      <mx:TextArea width="100%" height="300" 
      editable="false" id="rssOutput" wordWrap="true"/>
      
      <mx:DataGrid  width="100%" height="300" id="grilla" x="0" />   
      	
        </mx:VBox>
    
  </mx:Panel>
  </mx:VBox>
</mx:Application>
y el archivo proxy.php es :

<?php
$ch = curl_init();
$timeout = 30;
$userAgent = $_SERVER['HTTP_USER_AGENT'];

curl_setopt($ch, CURLOPT_URL, $_REQUEST['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);

$response = curl_exec($ch);

if (curl_errno($ch)) {
echo curl_error($ch);
} else {
curl_close($ch);
echo $response;
}
?>
  #2 (permalink)  
Antiguo 18/11/2009, 16:19
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Problema httpservice pasar los datos a un datagrid

No debes usar comillas

Código:
grilla.dataProvider = "evedatos";
Código:
grilla.dataProvider =evedatos;
Por lo demas dependiendo de lo que te regrese el script php dependera si el grid te muestre correctamente la informacion. En vez de poner el script php, es mejor que nos pongas el xml que te regresa el script php
  #3 (permalink)  
Antiguo 18/11/2009, 18:24
 
Fecha de Ingreso: agosto-2006
Mensajes: 113
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Problema httpservice pasar los datos a un datagrid

=( no me funciona tampoc cambie por esto :
private var evedatos:ArrayCollection
private function resultHandler(event:ResultEvent):void
{
evedatos = event.result.evec_api.quicklook.sell_orders.order;
grilla.dataProvider = evedatos;

}


y el xml esta en el codigo es del api de una web : en este bloke :
<mx:request>
<url>http://api.eve-central.com/api/quicklook?typeid=34</url>
</mx:request>




, no se en ke fallo el textarea si recoje los datos pero el datagrid no :S.

Saludos y gracias
  #4 (permalink)  
Antiguo 18/11/2009, 19:19
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Problema httpservice pasar los datos a un datagrid

Como te digo, depende de lo que trae el xml. Mira para que te des una idea, hice esta pequeño ejemplo de cargar mis datos de usuario de la api de lastfm en un datagrid:

Código xml:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"    
  3.   layout="absolute"  
  4.    height="100%" width="100%">
  5.      
  6.    <mx:HTTPService
  7.      id="LastFm" url="http://ws.audioscrobbler.com/2.0/user/sergestux/recenttracks.rss"      
  8.      resultFormat="e4x" result="CargarDatos();"
  9.      />
  10.        
  11.    <mx:Script>
  12.      
  13. <![CDATA[  
  14.  
  15.      public function Consultar():void
  16.      {          
  17.         LastFm.send()                  
  18.      }
  19.      
  20.      
  21.      public function CargarDatos():void
  22.      {    
  23.         GridDatos.dataProvider=LastFm.lastResult.channel.item;
  24.         RepDatos.dataProvider=LastFm.lastResult.channel.item;      
  25.      }            
  26.      
  27. ]]>
  28.  
  29.    </mx:Script>
  30.        
  31.    
  32.    <mx:VBox height="100%" width="100%">
  33.       <mx:DataGrid id="GridDatos" width="409">
  34.          <mx:columns>
  35.             <mx:DataGridColumn headerText="Artista" dataField="title"/>
  36.             <mx:DataGridColumn headerText="Fecha" dataField="pubDate"/>
  37.          </mx:columns>
  38.       </mx:DataGrid>
  39.       <mx:Button label="Consultar" click="Consultar();"/>
  40.        
  41.       <mx:Repeater id="RepDatos" >      
  42.          <mx:LinkButton label="{RepDatos.currentItem.title}"
  43.         click="navigateToURL(new URLRequest(event.currentTarget.getRepeaterItem().link), 'quote')"
  44.             themeColor="#C3E7FE" alpha="0.55"/>
  45.  
  46.       </mx:Repeater>      
  47.    </mx:VBox>
  48.    
  49.    
  50. </mx:Application>
  #5 (permalink)  
Antiguo 18/11/2009, 19:32
 
Fecha de Ingreso: agosto-2006
Mensajes: 113
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Problema httpservice pasar los datos a un datagrid

soy novato y no se en ke fallo =( , me funciona en el texarea pero no en el datagrid , kiero los datos en un array y pasarlos al data grid asi puedo manipularlos mejor .
Saludos.
  #6 (permalink)  
Antiguo 19/11/2009, 04:41
 
Fecha de Ingreso: agosto-2006
Mensajes: 113
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Problema httpservice pasar los datos a un datagrid

Ya pude solucionarlo solo cambie mi funcion por esta :

[Bindable]
private var evedatos:ArrayCollection;
private function resultHandler(e:ResultEvent):void
{
evedatos = proxyService.lastResult.eveapi.result.rowset.row as ArrayCollection;

}

y en el dataprovider le asigne la variable .

Saludos y gracias por sus aportes .
  #7 (permalink)  
Antiguo 19/11/2009, 16:47
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Problema httpservice pasar los datos a un datagrid

Puiedes filtrar asi:

Código:
proxyService.lastResult.result.rowset.row.(@allianceID=='150382481')
La arroba es por que es un atributo
  #8 (permalink)  
Antiguo 20/11/2009, 01:02
 
Fecha de Ingreso: agosto-2006
Mensajes: 113
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Problema httpservice pasar los datos a un datagrid

Gracias por la respuesta , lo de la coneccion lo solucione como mencione mas arriba lo de filtrar lo pregunte en otro post .
Saludos y gracias.

Última edición por bambanx; 20/11/2009 a las 02:09 Razón: lo de filtrar ya lo pregunte en otro post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:45.