1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP e FLASH.

Discussão em 'Web Development' iniciada por eralha, 27 de Março de 2007. (Respostas: 6; Visualizações: 1106)

  1. eralha

    eralha Power Member

    Bom dia pessoal.
    É o seguinte eu tenho um script php que lê uma BD e quero que o flash consiga ler uma certa ou certas variaveis que estão nesse script, o condigo e o seguinte:

    <?
    include("ligardb.php");
    $query = "Select * From ralha";
    $lol = mysql_query($query);
    while ($i = mysql_fetch_array($lol))
    {

    $fla = $i["nome"];
    echo "<tr>";
    echo "<td>";
    echo $i["id"];
    echo "</td>";
    echo "<td>";
    echo $i["nome"];
    echo "</td>";
    echo "<td>";
    echo $i["email"];
    echo "</td>";
    echo "<td>";
    echo $i["web"];
    echo "</td>";
    echo "<td>";
    echo $i["msg"];
    echo "</td>";
    echo "</tr>";
    }


    eu quero que ele me passe a variavel $fla, para o flash de modo a serem listados os nomes.
     
  2. msdevweb

    msdevweb Power Member

    Isso não é mto dificil, apenas tens que usar a função do flash LoadVariables(); para carregar o php, e depois aguardares pelos dados. atenção que o teu php terá que fazer o return/echo dessa variavel.

    Por exemplo. em flash (action script), em acções de um botão:

    Código:
    on (release) {
    
    loadVariables("nome_do_teu_script_.php",this,"GET"); //carrega as variaveis do teu php para o this. se tiveres problemas, ou se quiseres enviar uma variavel tua para o php usa o POST.
       
        this.onData = function() //vamos verificar se carregou as variaveis..
        {
            for(var a in this) trace([a,this[a]])
            
            if(this.tua_variavel_php!=NULL) //verificamos se a variavel que tu enviaste do phpnão está nulla, no teu caso $fla, será if(this.fla!=NULL)
            {
                // no caso de a variavel não ser nula
                _root.info.text = "Dados encontrados com sucesso.";
                _root.info_var.text = "- " +  this.fla + " -";
            } else {
                //    a variavel esta nula, logo correu algo mal....
               _root.info.text = "Dados invalidos. Variavel nula.";
                 _root.info_var.text= "null";
            }
    
    }
    
    Na parte do flash, esta tudo ok, NOTA que como tive a modificar um script que tinha para mim (enviar emails), pode estar com alguns erros o action script, mas nada de grave.
    Agora no teu php, no final do teu codigo faz: echo "fla=$fla";
    e mete no servidor e testa :) (repara que o flash vai fazer com que o php seja executado, logo não deves colocar html em output, porque pode bem baralhar o flash (já me aconteceu), faz somente o echo das tuas variaveis, ou então faz um script só para ir buscar essa variavel.

    Abraço.
     
  3. eralha

    eralha Power Member

    hey thanks pela help!

    Hmm.... tens razao tenho de retirar o script HTML a cena da tabela, e que isto e um script de leitura para uma pagina html, vou fazer o script a parte para a retirar so os nomes do SQL.

    Vou exprimentar isso assim que chegar a casa agora tou no trabalho :D, outr cena eu vi num tut qq que tens de meter um " & " nas variaveis que queres passar para o flash, nao terá de ficar no script echo "fla=&fla"; ou print(fla=&fla); ??

    abraço. thkx pela help once more :D
     
    Última edição: 27 de Março de 2007
  4. msdevweb

    msdevweb Power Member

    Comigo esta a funcionar assim echo "fla=$fla"; normalmente o & é usado para enviar mais que uma variavel, por exemplo echo "fla=$fla&variavel2=$var2"; penso que assim funcionara bem, senão tenta só echo "&fla=$fla";.
    Abraço.
     
    Última edição: 27 de Março de 2007
  5. eralha

    eralha Power Member

    Pelo que consegui ler no pixel2life o & acho que serve para enviar a variavel para o flash e como se fosse a indicação que tem de ir para o flash, mas quando chegar a casa testo logo isto e posto aqui o resultado.

    Abraço :D
     
  6. p3dro

    p3dro Power Member

    Viva!

    Não sei se percebi exactamente o que pretendes passar para o flash, se uma variável com vários valores; ou várias variáveis com os respectivos valores.

    Caso queiras tentar passar numa variável vários valores, poderias usar um simbolo como separador, por exemplo: fla=123$456$789, neste caso o "$" iria ser o separador;
    Suponhamos que no php retornas algo deste tipo:
    PHP:
    echo "fla=123$456$789$012";
    Depois para ir buscar os valores e "decompo-los" no flash, poderia ser algo deste tipo
    Código:
    myVars = new LoadVars();
    myVars.load("teste.php");
    myVars.onLoad  = function (success){
    	var parametros:Array = myVars.fla.split("$");
    	var aux:String="";
    	var countParams:Number=parametros.length;
    	
    	for (var i:Number = 0; i<countParams; i++) {
    		aux+= "var "+(i+1)+": "+(parametros[i])+";\n ";
    	}
    	
    	TextBox.text=aux;
    }
    

    Se por outro lado quisesses passar várias variáveis com os respectivos valores, uma possivel solução seria:

    PHP:
    echo "nome=123&idade=456&telefone=789&email=012"
    Depois o flash ficaria +/- assim:
    Código:
    myVars = new LoadVars();
    myVars.load("teste.php");
    myVars.onLoad = function(success) {
    	var aux:String = "";
    	for (var phpVar in this) {
    		aux += phpVar+" = "+this[phpVar]+"\n"; //guardar todo o conteúdo do myVars
    	}
    	TextBox.text = aux; //imprimir todo o conteúdo do myVars para debug por ex.
    
    	TextBox.text = myVars.nome; //imprimir variável especifica
    };
    

    Porque não tentas usar xml para comunicar com o flash? Terias uma maior flexibilidade.


    Espero ter ajudado ...
     
    Última edição: 27 de Março de 2007
  7. eralha

    eralha Power Member


    Obrigado pela ajuda mas ainda sou rookie no action script, complicaste uma beca as noções, hmmm, em relação ao xml eu nunca brinquei com xml apenas me dou bem com php.
     

Partilhar esta Página