falamansa 0 Denunciar post Postado Junho 19, 2010 Estarei mostrando como preencher um datagrid com dados vindos de uma pagina php com acesso ao mysql no flash. Bom primeiramente inicie um novo documento no flash com as3. Adicione um novo componente datagrid (Ctrl + F7). o nomeie como sem as aspas "exibe_data", e um campo de texto com nome "txt_txt". Depois click no primeiro frame e pressione F9 para entrar na janela de action e cole o código que esta abaixo: System.useCodePage=true; import fl.data.DataProvider; import fl.events.DataGridEvent; import fl.events.ListEvent; var aRoster:Array = new Array(); var aRoster2:Array = new Array(); var loader:URLLoader = new URLLoader(); var req:URLRequest = new URLRequest("BUSCAR2.php?idgg='0'"); //coloque no lugar de BUSCAR2.php o nome de seu formulário php no caso o meu foi BUSCAR2.php var variables:URLVariables = new URLVariables(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; req.method = URLRequestMethod.POST; txt_txt.tabIndex = 0; txt_txt.addEventListener(KeyboardEvent.KEY_UP, sendForm); function sendForm(e:KeyboardEvent):void{ variables.nome = txt_txt.text; //coloco dentrode variables os campos txt_txt. req.data = variables; //Adiciono ao data do URLRequest as variáveis dos campos loader.load(req); //Envio para o php loader.addEventListener(Event.COMPLETE, receiveLoad); //Ao termino da leitura do php carrego a função de recebimento de variável. } function receiveLoad(evt:Event):void { if(evt.target.data.TXTP == 0){ }else{//.idp+" "+evt.target.data.nomep+" "+evt.target.data.fonep+" "+evt.target.data.setorp+" "+evt.target.data.cidadep; aRoster2=evt.target.data.idp.split(","); //converto os dados do php para a array no flash var numcont:Number=0; for (var a = 0; a < evt.target.data.TXTP; a++) { // Passando valores para o DataGrid aRoster.push({ID:aRoster2[numcont++], NOME:aRoster2[numcont++], TELEFONE:aRoster2[numcont++], SETOR:aRoster2[numcont++], CIDADE:aRoster2[numcont++]}); } //aRoster.push({ID:aRoster2[0]}); //aRoster=[{ID:evt.target.data.idp, NOME:evt.target.data.nomep, TELEFONE:evt.target.data.fonep, SETOR:evt.target.data.setorp, CIDADE:evt.target.data.cidadep}]; exibe_data.dataProvider = new DataProvider(aRoster); aRoster.splice(0,aRoster.length); } } ///////////////////////////////////////////////////////////// exibe_data.columns = ["ID", "NOME", "TELEFONE", "SETOR", "CIDADE"]; //define a quantidade de coluna e seus nomes do datagrid exibe_data.columns[0].width = 30; //determina o tamanho de cada coluna exibe_data.columns[1].width = 100; exibe_data.columns[2].width = 55; exibe_data.columns[3].width = 75; exibe_data.columns[4].width = 65; exibe_data.addEventListener(ListEvent.ITEM_CLICK, clickHandler, false, 100); //Identifica um click nos campos do datagrid function clickHandler(e:ListEvent):void { trace("You are above row: " + e.rowIndex + " column: " + e.columnIndex + " item:" + exibe_data.getItemAt(Number(e.rowIndex)).ID); } agora Vamos a pagina php que no caso nosso estou usando com nome de BUSCAR2.php <?php $client = $_POST["nome"];//recebo a variável nome do flash $resultado=0;//variável de controle utf8_decode($client); //codifico a variável nome para utf8 $con = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());//cria conexão com mysql no meu caso estou usando localmente mysql_select_db("teste", $con);//selecionei o banco chamado teste $result = mysql_query("SELECT * FROM clientes WHERE nome LIKE '$client%' LIMIT 0 , 10"); $quant=mysql_num_rows($result); echo "TXTP=".$quant; //defino o tanto de registros encontrados no banco para o flahs cria um loop pra preencher o datagrid echo "&idp=";//imprimo os dados separados por vírgula para serem tratados com split no flash while($row = mysql_fetch_array($result)) { $id = $row["id"]; $nome = str_replace(",","-",$row["nome"]); $fone = str_replace(",","-",$row["fone"]); $setor = str_replace(",","-",$row["setor"]); $cidade = str_replace(",","-",$row["cidade"]); echo $id.",".$nome.",".$fone.",".$setor.",".$cidade.","; /*$resultado ="idp=".$row["id"]; $resultado .="&nomep=".$row["nome"]; $resultado .="&fonep=".$row["fone"]; $resultado .="&setorp=".$row["setor"]; $resultado .="&cidadep=".$row["cidade"];*/ } mysql_free_result($result);//limpo a consulta da memória mysql_close($con);//fecho a connexão com o banco //echo $resultado; ?> Agora vamos para o código sql. crie um novo banco que no nosso caso aqui seria o teste e acrescente a SQL abaixo: CREATE TABLE IF NOT EXISTS `clientes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(100) NOT NULL, `sobre_nome` varchar(30) NOT NULL, `firma` varchar(30) NOT NULL, `contador` varchar(50) NOT NULL, `fonecont` varchar(20) NOT NULL, `fone` varchar(15) NOT NULL, `endereco` varchar(30) NOT NULL, `setor` varchar(20) NOT NULL, `cidade` varchar(20) NOT NULL, `cnpj` varchar(30) NOT NULL, `inscricao_estadual` varchar(30) NOT NULL, `inscricao_municipal` varchar(30) NOT NULL, `cep` varchar(20) NOT NULL, `uf` varchar(2) NOT NULL, `servico` int(2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=781 ; Insira alguns dados a essa tabela, e faça um teste. dentro do localhost Compartilhar este post Link para o post Compartilhar em outros sites