Gui_PB 0 Denunciar post Postado Maio 27, 2009 Bom dia... quando não se sabe muita coisa é triste <_<, mas ainda bem que existe forum pra ajudar hehehe...Bom sem mais brincadeiras, estou aqui novamente com um problema na hora de listar os dados vindos do PHP no DataGrid do Flex, para que possam entender melhor, eu estou utilizando PHP 2.5.8, Oracle 10, AMFPHP 1.9, eu seleciono o CODIGO, LOJA, NOME e MUNICIPIO do cliente, e quero listar isso no DataGrid do Flex, ele não da nenhum erro, mas imprime apenas o Municipio nas 4 colunas do DataGrid: a função do PHP é essa: function buscaDados(){ global $con; $linha=0; $sql="SELECT A2_COD,A2_LOJA,A2_NOME,A2_MUN FROM SA2010 WHERE A2_COD LIKE '%P%'"; $sql = ociparse($con,$sql) or die ("ERRO NO SELECT"); ociexecute($sql,OCI_DEFAULT); if($sql) { $resultado->busca="OK"; while(ocifetch($sql)) { $resultado->dtCod[$linha]=ociresult($sql,"A2_COD"); $resultado->dtLoj[$linha]=ociresult($sql,"A2_LOJA"); $resultado->dtNom[$linha]=ociresult($sql,"A2_NOME"); $resultado->dtMun[$linha]=ociresult($sql,"A2_MUN"); $linha++; }; } else { $resultado->busca="ERRO"; $resultado->dtMsg=ocierror(); }; return $resultado; } function mundo() { global $con; $ora_db = 'teste'; $ora_user = 'teste'; $ora_pass = 'teste'; $con = @ocilogon($ora_user,$ora_pass,$ora_db) or die ("ERRO NA CONEXAO COM O ORACLE"); } O DataGrid do flex: <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" creationComplete="nossoObjeto.buscaDados.send()" > <mx:Script source="crud.as" /> <mx:DataGrid x="10" y="10" width="549" id="meusDados" creationCompleteEffect="{deLado}" height="212"> <mx:columns> <mx:DataGridColumn headerText="Codigo" dataField="dtCod" width="60"/> <mx:DataGridColumn headerText="Loja" dataField="dtLoj" width="40"/> <mx:DataGridColumn headerText="Nome" dataField="dtNom" width="300"/> <mx:DataGridColumn headerText="Cidade" dataField="dtMun" width="100"/> </mx:columns> </mx:DataGrid> <mx:RemoteObject id="nossoObjeto" destination="amfphp" source="ola.mundo"> <mx:method name="buscaDados" result="{lidaBusca(event)}" /> </mx:RemoteObject> E o crud.as: import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.events.ResultEvent; [Bindable] public var dataGridData:Object; private function lidaBusca(evt:ResultEvent):void { if(evt.result.busca=="OK") { dataGridData = new Object; dataGridData = evt.result.dtCod; dataGridData = evt.result.dtLoj; dataGridData = evt.result.dtNom; dataGridData = evt.result.dtMun; meusDados.dataProvider=dataGridData; } else { Alert.show("Impossivel encontrar dados.\n\nERRO:\n"+evt.result.dtMsg); } } Por favor, se alguém puder ajudar eu agradeço.... Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Gui_PB 0 Denunciar post Postado Maio 29, 2009 Bom dia pessoal..... depois de muitas tentativas eu consegui resolver, mas obrigado pelas pessoas que leram hehehhe.... mas enfim o problema estava na forma que eu repassava os dados do PHP para o flex que estava dessa forma: while(ocifetch($sql)) { $resultado->dtCod[$linha]=ociresult($sql,"A2_COD"); $resultado->dtLoj[$linha]=ociresult($sql,"A2_LOJA"); $resultado->dtNom[$linha]=ociresult($sql,"A2_NOME"); $resultado->dtMun[$linha]=ociresult($sql,"A2_MUN"); $linha++; }; e tive que fazer assim: while(ocifetch($sql)) { $resultado->dtCod[$linha][1]=ociresult($sql,"A2_COD"); $resultado->dtCod[$linha][2]=ociresult($sql,"A2_LOJA"); $resultado->dtCod[$linha][3]=ociresult($sql,"A2_NOME"); $resultado->dtCod[$linha][4]=ociresult($sql,"A2_MUN"); $linha++; }; e na hora de imprimir no flex que estava assim: <mx:columns> <mx:DataGridColumn headerText="Codigo" dataField="dtCod" width="60"/> <mx:DataGridColumn headerText="Loja" dataField="dtLoj" width="40"/> <mx:DataGridColumn headerText="Nome" dataField="dtNom" width="300"/> <mx:DataGridColumn headerText="Cidade" dataField="dtMun" width="100"/> </mx:columns> tive que fazer assim: <mx:columns> <mx:DataGridColumn headerText="Codigo" dataField="1" width="60"/> <mx:DataGridColumn headerText="Loja" dataField="2" width="40"/> <mx:DataGridColumn headerText="Nome" dataField="3" width="300"/> <mx:DataGridColumn headerText="Cidade" dataField="4" width="120"/> </mx:columns> e o AS assim : dataGridData = new Object; dataGridData = evt.result.dtCod; dataGridData = evt.result.dtLoj; dataGridData = evt.result.dtNom; dataGridData = evt.result.dtMun; meusDados.dataProvider=dataGridData; fiz assim: dataGridData = new Object; dataGridData = evt.result.dtCod; meusDados.dataProvider=dataGridData; Desta forma funcionou perfeitamente, então fica ai um exemplo em Oracle, AMFPHP, Flex e PHP para alguém que possa precisar..... Compartilhar este post Link para o post Compartilhar em outros sites