Comunidad de diseño web y desarrollo en internet online

flex + amfphp+mysql

Citar            
MensajeEscrito el 20 Sep 2012 09:27 pm
Hola , tengo un proyecto en flex para moviles y ya he logrado todo, validar, eliminar ,publicar..etc, pero tengo un problema no puedo imprimir los datos que estan en la tabla de la BD, he encontrado bastantes tuto acerca de como hacer esto, pero todos lo hacen en datagrid, componente no disopnible para moviles, entonces yo lo intento hacer con una list, pero nd, hay les dejo el codigo por si me pueden hechar un manito.

Código :

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:miclase="services.miclase.*"
      xmlns:empleadoservice="services.empleadoservice.*"
      xmlns:miclase1="services.miclase1.*" title="registros" creationComplete="onInit();">
   <fx:Script>
      <![CDATA[
         import mx.collections.ArrayCollection;
         import mx.events.FlexEvent;
         import mx.rpc.events.ResultEvent;
         [Bindable]
         public var categoryArray:ArrayCollection;
      
         
         protected function Back(event:MouseEvent):void
         {
      navigator.popView();
         }
         
         private function onInit():void{
            Servicio.getusuarios.send();
            
         }
         public  function onResult(e:ResultEvent):void{
            
            categoryArray = new ArrayCollection(e.result as Array);
            //categoryArray=e.result.data;
      
         }
         
         
         protected function Cargar(event:MouseEvent):void
         {
            Servicio.getusuarios.send();
         }
         
         
         
         
      ]]>
   </fx:Script>
   <fx:Declarations>
      <s:RemoteObject id="Servicio" endpoint="http://172.16.2.237/practicanteunab/amfphp/gateway.php" source="Ejemplo.miclase" destination="Ejemplo.miclase" showBusyCursor="true">
         <s:method name="getusuarios" result="onResult(event);" >
         </s:method>
      </s:RemoteObject>
   
      
      <!-- Place non-visual elements (e.g., services, value objects) here -->
   </fx:Declarations>
   <s:titleContent>
      <s:Button label="Back" click="Back(event)"/>
   </s:titleContent>
   
   <s:Button x="219" y="158" label="Cargar" click="Cargar(event)"/>
   <s:List x="78" y="109" dataProvider="{categoryArray}"> </s:List>
   
   <fx:Declarations>
   </fx:Declarations>
   
   


   


</s:View>


No imprime nada :(

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 12:09 pm
Una lista espera por lo menos un dato para mostrar como label, indica como labelField el nombre de alguna columna, ej

Código :

<s:List x="78" y="109" dataProvider="{categoryArray}" labelField="Ciudad"> </s:List>


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 01:08 pm
=D =D , MUCHAS GRACIAS, era algo muy simple, pero igual llevaba resto dando vueltas y vueltas y nada ... enserio gracias,... y pues si eran las mismas preguntas basicamente, una es con una BDL, y la otra es con un servicio de afmphp... pero la sol eera la misma, pense que quizas se debia hacer distinto.

Gracias.

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 01:14 pm
Otra pregunta, cuando utilizo el servicio de afmphp, puedo validar lo que me retorna la funcion de php como por ej:
protected function Onresult(e:ResultEvent):void
{
if( e.result==true){
var tempObj:Object =new Object();
tempObj.Usuario=Usuario.text;
navigator.pushView(part2HomeView,tempObj);
}else{
navigator.pushView(error);
}
}
con el e.result.... Cuando manejo la BDL como puedo vaildar el resultado de la consulta?, supongo que el sqls.execute() equivale al mysql_query, pero ps no tengo idea de como validar , si me devolvio un false or true.... if (sqls.execute== true) :O ??

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 01:29 pm
EL result es un Object, no un booleano. De todas formas si existe automáticamente se convierte a true, la forma sería

Código ActionScript :

if(e.result){
  //existe
} else {
  //no existe
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 01:45 pm
emm lo siento, si no si no me supe explicar, el ej q puse en la pregunta anterior, ya esta bien :).

protected function Eliminar(event:MouseEvent):void
{
sqls.text = "DELETE FROM gg WHERE Nombre='"+Nombre1.text+"'";
sqls.execute();
}
esto es lo que tengo en mi alpicacion de BDL, como puedo validar por ej si elimino o no al usuario.

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 01:58 pm
Pues el método de tu clase puede devolver lo que quieras, por ejemplo true/fase y entonces si puedes hacer lo que dices. Igual mandar el query desde el cliente es altamente inseguro y no pasa ninguna auditoría de seguridad

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 02:14 pm
Cual debe ser la validacion?. :(
protected function Eliminar(event:MouseEvent):void
{
sqls.text="Select * FROM gg where Nombre='"+Nombre1.text+"'";
sqls.execute();
if(??==??){
sqls.text = "DELETE FROM gg WHERE Nombre='"+Nombre1.text+"'";
sqls.execute();
}else{
navigator.pushView(error);
}
}

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 02:29 pm
En PHP

if(mysql_query("... lo que sea ")) return true
else return false;

EN el onResult de AS

Código ActionScript :

if(e.result){
  //existe
} else {
  //no existe
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 02:37 pm
pero estoy dentro de un event:Mouse, me tira error... Access of possibly undefined property result through a reference with static type flash.events:MouseEvent.
-Access of undefined property result

cuando tenia la conexion con amfphp, definia el Onresult en el metodo q llambaba al servidor, pero ak q :S

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 03:00 pm
Toda operación de back-end es asincrónica, por eso existe un onResult, y es imposible validar inmediatamente. Por eso la validación la tienes que hacer en la función que seteaste de callback, no la puedes hacer donde lo planteas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 03:04 pm
lol lo q me acabas de decir , para mi esta en arameo antiguo... :P , enserio lo siento pero estoy hasta ahora comenzando con este cuento de flex, llevo 1 semana... y ps termine mi aplicacion con afmphp y me salio perfecto, ahora el jefe quier con bdl, y de vdd EN REALIDAD estoy perdido :( , algo asi tengo,
protected function Eliminar(event:MouseEvent):void
{
sqls.text="Select * FROM gg where Nombre='"+Nombre1.text+"'";
sqls.execute();
}


protected function Onresult(e:ResultEvent):void
{
sqls.text="Select * FROM gg where Nombre='"+Nombre1.text+"'";
sqls.execute();
if(e.result==true){
sqls.text = "DELETE FROM gg WHERE Nombre='"+Nombre1.text+"'";
sqls.execute();
} else {
navigator.pushView(error);
}
}
podria dentro del event:Mouse llamar a mi funcion Onresult? o como la llamo.. para q se ejecute.. enserio q pena :S =D

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 03:22 pm
A ver, tratemos de pasar al castellano

cuando tenia la conexion con amfphp, definia el Onresult en el metodo q llambaba al servidor,


¿Adivina que es esto?

Código ActionScript :

sqls.execute();


Una llamada a amfphp. ¿Y que hay que hacer cuando se llama a amfphp? Definir un onResult !!!
Si, en otras palabras, no se puede poner inmediatamente despues de la llamada.
Asíncrono quiere decir que no se ejecuta inmediatamente, sino en diferido, por eso se tiene que escribir un callback, y por eso no se puede hacer lo que quieres.

Dedicale tiempo, pensalo, cuando menos sabés, mas tiempo tenés que dedicarle.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 03:36 pm
podria ser una opcion?
protected function Eliminar(event:MouseEvent):void
{
sqls.text="Delete FROM gg where Nombre='"+Nombre1.text+"'";
sqls.execute();
trace(sqls);
a=sqls.getResult().complete;
trace(a);

}
y luego validar a ?

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 03:54 pm
No

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 03:58 pm
SOLUCIONADO :)
protected function Eliminar(event:MouseEvent):void
{
sqls.text="DELETE FROM gg WHERE Nombre='"+Nombre1.text+"'";
sqls.execute();
trace(sqls);
a=sqls.getResult().rowsAffected;
trace(a);
if(a==0)
{
navigator.pushView(error);
}else{
navigator.pushView(correct);
}

}

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 04:08 pm
Si sqls.execute() es una llamada al back-end, está mal

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 04:17 pm
lol pero lo valida perfecto, cuando lo elimiina va a la vista correct y sino a erro .. .so?

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 04:24 pm
Asíncrono significa que solo puede ser accedido en un callback, después no me digas que no te avisé ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 04:32 pm
jajaj si tiens razon! , ya vi que sirve una vez y luego chafea jajajajah perdon :P o avecs si o aveecs no.. la vdd no entiendo muy bien el pq , pero tienes razon

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 04:37 pm
es spr , raro, puedo validar bien , a un usuario que acabo de agregar o si no existe , pero en el segundo llamado, ya GeeGee

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 07:15 pm
ayudame, con un pequeñisisimo ej... :(

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 07:23 pm
¿Que es sqls? ¿Donde está declarado?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2012 07:26 pm
mira private var sqls:SQLStatement = new SQLStatement();

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Sep 2012 07:59 pm
Toy confundido... supongamos :
protected function Eliminar(event:MouseEvent):void
{
sqls.text="select * FROM gg Where Nombre='"+Nombre1.text+"'";
sqls.execute();
a.source=sqls.getResult().data;
trace(a);
if(a.length == 0){
trace("hola");
}else{
trace("chao");
}

son registros : a,b
No son registros: c,d

La primera vez que sucede siempre imprime "hola" , asi le ponga a, al oprimir por segunda vez con el mismo dato: a, si imprime "chao", si voy ahora con c, imprmira una vez "chao" y luego si la correcta " hola" y asi.. osea que toma 2 iteraciones darme el resultado correcto, si la anterior fue un resultado contrario...PQ LOL :(

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Sep 2012 01:15 pm
pero , dame un pequeño ej, con lo q sea de manejo de BD.... :S una estructura... solo eso

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Sep 2012 02:32 pm
protected function Eliminar(event:MouseEvent):void
{

sqls.text="DELETE FROM gg WHERE Nombre='"+Nombre1.text+"'";
sqls.execute();
sqls.addEventListener(SQLEvent.RESULT, Eliminado);

}

protected function Eliminado(event:SQLEvent):void{

a = sqls.getResult().rowsAffected;
if(a==0){
navigator.pushView(error);
}else{
navigator.pushView(correct);

}
}

Por amendez

38 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Sep 2012 12:24 pm
Estas abriendo muchos hilos para lo mismo, me mantendré en uno solo, nada personal ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.