Comunidad de diseño web y desarrollo en internet online

Última pregunta sobre el tema, lo prometo...

Citar            
MensajeEscrito el 03 Mar 2006 04:20 am
Hola, jaja, ya los he de tener bien enfadados :oops: con esto de Flash, AMFPHP, Remoting y MySQL sin componentes pre-diseñados, pero les juro que esta es la última pregunta sobre el tema, ¿ok? :lol: . Bueno, sucede que me fui al Google y busqué "Flash AMFPHP Hello World" y que me sale un ejemplo claro de como Remoting y AMFPHP funcionan :D . Bueno, en ese ejemplo el *.fla se conecta al gateway y manda llamar una funcion del servicio, devolviendo una cadena. Les pongo aquí el codigo:

Servicio:
------------
"HelloWorld.php"

Código :

<?php
 class HelloWorld
 {function HelloWorld()
  {$this->methodTable=array(
   "getMessage"=>array(
    "description"=>"Este metodo regresa una cadena",
    "access"=>"remote",));}
 function getMessage()
 {return "Este mensaje proviene desde PHP";}}
?>

_________________________________________________________________________
AS v2.0:
----------

Código :

//#include "NetDebug.as"
import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.rpc.ResultEvent;
import mx.rpc.RelayResponder;
urlGateway = "http://localhost/amfphp/gateway.php";
var myService:Service = new Service(urlGateway, null, "HelloWorld", null, null);
var Call:PendingCall = myService.getMessage();
Call.responder = new RelayResponder(this, "getData");
function getData(re:ResultEvent):Void 
{_root.DynamicText001=re.result;}


¡Y si funciona! :) , jaja, disculpen, es que la verdad si me emocioné porque apenas voy empezando. Ok, hasta ahi todo perfecto. Ahora, quisiera saber como recibir en Flash un arreglo completo, por ejemplo, que mi servicio fuera algo así:

Código :

<?php
 class HelloWorld
 {function HelloWorld()
  {$this->methodTable=array(
   "getMessage"=>array(
    "description"=>"Este metodo regresa una cadena",
    "access"=>"remote",));}

 function getMessage()
 {$link=mysql_connect('localhost','root','');
  mysql_select_db("Clientes"); 
  $sql="SELECT * FROM clientes WHERE NC = 'NC001'";
  $result=mysql_query($sql);
  $row=mysql_fetch_array($result);
  return $row;
  mysql_free_result($result);
  mysql_close($link);}}
?>


¿Me explico?, ¿se puede hacer eso?, si se puede, ¿cómo tomo $row en Flash?, ¿qué debo de cambiar en el AS?

Código :

function getData(re:ResultEvent):Void 
{_root.DynamicText001=re.result;}


Muchas gracias.

MQ.

Por Manuel Quintero

53 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 03 Mar 2006 06:23 am
errggh bueno, lo hice con mi tutorial, supongo que tienes el servicio misquerys de mi tutorial... lo hice solo con consulta, la consulta la muestro en un dynamic text con nombre de instancia consultaTXT al hace click en un boton NORMAL con nombre de instancia botonConsulta, haz un nuevo flash con ese texto dinamico y ese boton, y en el primer frame pon este código:

Código :

import mx.remoting.NetServices;
import mx.remoting.Connection;
mx.remoting.debug.NetDebug.initialize();
                                  //Pon la URL de tu gateway aqui
NetServices.setDefaultGatewayUrl("http://usuarios.lycos.es/salazarmaikel/remoting/gateway.php"); 
conexion = NetServices.createGatewayConnection();

capturaRespuesta = new Object();
servicio = conexion.getService("misquerys",capturaRespuesta);

capturaRespuesta.onStatus = function (data){
   trace("Fuck un error, por:" +data.description);
}
capturaRespuesta.consulta_Result = function (data){
   if (data){ //si la consulta fue correcta 
      if (data.getLength()){ //si tenemos al menos un registro
         consultaTXT.text="";
         for (i=0; i<data.getLength();i++){ 
            consultaTXT.text+= "nombre"+i+": "+unescape(data.getItemAt(i).nombre) +"\n" ;
            consultaTXT.text+= "comentarios"+i+": "+unescape(data.getItemAt(i).comentarios) +"\n" ;
         }
         consultaTXT.autoSize = true;
      }
   }
}
botonConsulta.onRelease = function (){
   servicio.consulta();
}
stop();


recuerda poner la ruta de tu gateway ;)

saludos

PD: no molesta que consultes, sino que no tratas de analizar la lógica del código, como te dije desde un principio es solo logica de programación, aparte de abrir 3 post diferentes, bueno pero no te preocupes, siempre a la orden :)
PD2: por favor cuando postees codigo usa la etiquetas code para ofrecer una mejor lectura ;)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

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