Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andrey Schulz

[Resolvido] Carregar Combo Flex + AMFPHP

Recommended Posts

Boa noite,

 

 

Estou tentando trazer o resultado do PHP para o Flex para carregar um combobox, o retorno no AMFHP me parece estar certo, porem nao consigo carrega-los no FLEX.

 

Eu consegui carregar um combo na tela, porem quando eu seto um outro Array para trazer de outro combo este nao carrega.

Nao sei se podem me ajudar , procurei bastante ja, mas nao estou conseguindo resolver isto.

 

Estou com este metodo do RemoteObject que retorna do PHP

 

<mx:method name="listaFreq" result="{retornaFreq(event)}"/>

 

tenho a funçao

 

public function retornaFreq(event:ResultEvent):void {

dbGrid= event.result.data}

O Array

 

public var dbGrid:Array;

 

e no combo o dataprovider={dbGrid}

 

 

 

 

Nao sei se estou fazendo certo isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você deve fazer assim:

 

[bindable]
public var dbGrid:ArrayCollection;


public function retornaFreq(event:ResultEvent):void {

  dbGrid = new ArrayCollection(event.result as Array);

}

setei o arrayCollection com o que vem do php, agora você precisa setar o dataprovider do combo com esse arrayCollection.

comboBox.dataprovider = dbGrid ou via mxml:

<mx:ComboBox id="cb" dataProvider="{dbGrid}"/>

Só mais uma dica pra funcionar 100%, pesquise por labelField, que é onde você configura o campo que aparece na combo.

Abs



Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, funcionou do jeito que voce falou!

 

Nao sei se era preciso, mas eu criei dois Array, uma para cada retorno.

 

So que me gerou um erro, quando informei no outro dataprovider no combo

 

"Data binding will not be able to detect to dbgrid"

Compartilhar este post


Link para o post
Compartilhar em outros sites

 
<mx:ComboBox id="cb_ap" y="10" left="77" dataProvider="{dbGridAte}" labelField="ate_desc" width="389"/>
<mx:ComboBox id="cb_freq" x="77" y="42" width="389" dataProvider="{dbGrideFreq}" labelField="freq_desc"></mx:ComboBox>


[bindable]
public var dbGridAte:ArrayCollection;       
public var dbGrideFreq:ArrayCollection;

public function retornaTipoAte(event:ResultEvent):void{        	 	        	
   dbGridAte = new ArrayCollection(event.result.data as Array)
   cb_ap.dataProvider = dbGridAte;}

public function retornaFreq(event:ResultEvent):void{
   dbGrideFreq = new ArrayCollection(event.result.data as Array)
   cb_freq.dataProvider = dbGrideFreq;

O alerta ocorre no segundo combo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está ali no [bindable], ele está associado somente ao primeiro ArrayCollection:


[bindable]
public var dbGridAte:ArrayCollection;     
public var dbGrideFreq:ArrayCollection;

public function retornaTipoAte(event:ResultEvent):void{                                 
   dbGridAte = new ArrayCollection(event.result.data as Array)
   cb_ap.dataProvider = dbGridAte;}  

public function retornaFreq(event:ResultEvent):void{
   dbGrideFreq = new ArrayCollection(event.result.data as Array)
   cb_freq.dataProvider = dbGrideFreq;}


// Mude para

// Não precisa setar o dataProvider da combo em dois locais, ou seta no código ou no mxml :)

[bindable]
public var dbGridAte:ArrayCollection;
[bindable]     
public var dbGrideFreq:ArrayCollection;

public function retornaTipoAte(event:ResultEvent):void{                                 
   dbGridAte = new ArrayCollection(event.result.data as Array)
   }  

public function retornaFreq(event:ResultEvent):void{
   dbGrideFreq = new ArrayCollection(event.result.data as Array)
   }

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigos, eu estou com o mesmo problema, olhei a situação acima mas não consegui resolver, estou querendo popular o combobox.

meu código:

<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
		   xmlns:s="library://ns.adobe.com/flex/spark"
		   xmlns:mx="library://ns.adobe.com/flex/mx"
		   width="710" height="424"
		   creationComplete="initApp()"
		   close="{PopUpManager.removePopUp(this)}"
		   xmlns:controls="fs.controls.*"
		   title="LANÇAMENTO DE VALES">

 

-----------------

sql:

	function listar_funcionario(){
    $sql = mysql_query("SELECT * FROM tb_funcionario ORDER BY nome_func ASC");
	return $sql;
}

----------------

actionScript:

<s:RemoteObject id="dados"
		source="lanhouse"
		destination="amfphp"
		showBusyCursor="true" 
		fault="dados_faultHandler(event)">

		<s:method name="listar_funcionario" result="retornoFunc(event)"/>

	</s:RemoteObject>

[bindable]
      public var PHPDados:ArrayCollection;

public function retornoFunc(event:ResultEvent):void
{
      PHPDados = new ArrayCollection(event.result as Array)
}

 

	<s:ComboBox x="281" y="64" id="cb_funcionario" 
            dataProvider="{PHPDados}" 
                   labelField="nome_func"
/>

 

			private function initApp():void 
		{
			dados.listar_fucnionario.send();

		}

 

só que não carrega nada no combobox.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não carrega nada na combo porque você nao ta passando nada pro flex somente a string de consulta, na sua consulta sql, você tem que jogar o que vem do banco dentro de uma array e retornar esse array para o flex.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.