Boa noite Igor, já tentei de tudo e não estou conseguindo passar o 
argumento... por favor, me ajuda.

Tentei assim: mas não vai

<s:Button id="btnBuscar" x="373" y="27" label="buscar" 
click="{buscarPedidos(campoBusca:Number)}"/>

onde campoBusca é o inputText será preenchido pelo usuário, comparando com 
o Banco no campo nPedido conforme php abaixo.

agora dá esse erro:

Multiple markers at this line:
-1084: Syntax error: expecting rightparen before colon. (já tentei todas as 
pontuações possíveis)


o remote ...

        <s:RemoteObject id="RemotePedidos" destination="zend" 
source="Pedidos" fault="Alert.show(event.fault.faultString)">
            
            <s:method name="buscarPedidos" 
result="{trataDadosBusca(event)}"/>

        </s:RemoteObject>

o php está assim:

 function buscarPedidos(){
  $banco = new Banco();
  $resultado = new stdClass();
  $linha = 0;
  $sql = "SELECT nPedido, dtPedido from pedidos WHERE nPedido = 
'$campoBusca'";
  $res = mysql_query($sql);
  if($res){
    $resultado->busca="OK";
    while ($dados=mysql_fetch_object($res)){
    $resultado->detalhes[$linha] = $dados;
    $linha++;
    }
  }
  else{
    $resultado->busca="ERRO";
    $resultado->detalhes=mysql_error();
  }
  return $resultado;
}

Caso tenha alguma solução mais simples, por favor, me oriente. O que eu 
quero é que na DataGrid apareça apenas o Pedido que o cliente digitou.

muito grato pela atenção de todos.



Em terça-feira, 31 de julho de 2012 10h03min56s UTC-3, Principe borodin 
escreveu:
>
> leia o erro
>
> numero incorreto de argumentos, experado 1, ou seja, sua funcao precisa de 
> um argumento e vc nao passou nenhum, outra coisa, se esta usando zend, 
> logicamente eh php
>
> Igor C. de Paula
> Analista de sistema e Desenvolvedor
> (22) 9879-5627 
> [email protected]
> www.adminweb.com.br
> Sistemas intranet, internet e integrados
> Enviado via iPad
>
> Em 31/07/2012, às 09:17, aojunioro <[email protected]> escreveu:
>
> Bom dia a todos, estou estudando Flex e estou apanhando para fazer uma 
> simples *Pesquisa no Banco*.
>
> Usei Flex + Zend + PHP + MySQL
>
> Se puderem me ajudar, ficarei imensamente grato.
>
> O caso é que tenho uma DataGrid que apresenta as informações do banco.
> Nesta DataGrid quero fazer uma pesquisa (no Banco) pelo número do Pedido.
>
>                 <s:TextInput id="campoBusca" x="286" y="27" width="79"/>
>                 <s:Label x="243" y="34" text="Pedido"/>
>                 
>                 <s:BorderContainer x="242" y="57" width="619" height="348">
>                     <mx:DataGrid id="dgFech" x="12" y="11" width="594" 
> height="324"
>                                  contentBackgroundAlpha="1.0"
>                                 
>  itemClick="{carregaDadosFech(dgFech.selectedIndex)}">
>                         <mx:columns>
>                             <mx:DataGridColumn dataField="idPedido" 
> headerText="ID" width="31" />
>                             <mx:DataGridColumn dataField="nPedido" 
> headerText="Nº Pedido"/>
>                             <mx:DataGridColumn dataField="vlrPedido" 
> headerText="Vlr Pedido"/>
>                             <mx:DataGridColumn dataField="vlrApagarPed" 
> headerText="Vlr a Pagar"/>
>                             <mx:DataGridColumn dataField="dtEntrega" 
> headerText="Data Entrega"/>
>                             <mx:DataGridColumn dataField="vlrPagoFech" 
> headerText="Vlr Pago"/>
>                             <mx:DataGridColumn dataField="frmPgtoFech" 
> headerText="Frm Pgto"/>
>                             <mx:DataGridColumn dataField="statusFech" 
> headerText="Status"/>
>                         </mx:columns>
>                     </mx:DataGrid>
>                 </s:BorderContainer>
>
>
> Para isso fiz assim, mas está apresentando erro, logo no click, portanto 
> não sei se o restante está certo:
>
> *no click*
> <s:Button id="btnBuscar" x="373" y="27" label="buscar" 
> click="{buscarPedidos();}"/>
>
> o erro encontra-se justamente aqui:
> *1136: Incorrect number of arguments.  Expected 1.*
>
>
> *Ele deveria chamar a AS:*
>
> public function buscarPedidos(campoBusca:Number):void{
>     if(campoBusca > 0){
>         RemotePedidos.buscarPedidos.arguments.campoBusca = nPedido;
>         RemotePedidos.buscarPedidos.send();  
>     }
>     else{
>         Alert.show("N. Pedido Inválido");
>     }
> }
>
> *que chama o Remote Object:*
>
> <s:RemoteObject id="RemotePedidos" destination="zend" source="Pedidos" 
> fault="Alert.show(event.fault.faultString)">
>
>            * <s:method name="buscarPedidos" 
> result="{trataDadosBusca(event)}"/>*
>
> </s:RemoteObject>
>
>
> *PHP tenta inserir:*
>
>  function buscarPedidos(){
>   $banco = new Banco();
>   $resultado = new stdClass();
>   $linha = 0;
>   $sql = "SELECT * FROM Pedidos WHERE *campoBusca* = *$nPedido*"; // 
> dúvida: pode ser assim, Id do ImputText e nome do campo no banco diferentes 
> ?
>   $res = mysql_query($sql);
>   if($res){
>     $resultado->busca="OK";
>     while ($dados=mysql_fetch_object($res)){
>     $resultado->detalhes[$linha] = $dados;
>     $linha++;
>     }
>   }
>   else{
>     $resultado->busca="ERRO";
>     $resultado->detalhes=mysql_error();
>   }
>   return $resultado;
> }
>
>
> *retorna o Resultado ao Remote Object*
>
> que trata os dados enviando para o AS:
>
> private function trataDadosBusca(event:ResultEvent):void{
>     if (event.result.busca == "OK"){
>         dataGridFech = new Object();
>         dataGridFech = event.result.detalhes;
>         dgFech.dataProvider = dataGridFech;
>     }
>     else
>         Alert.show("Dados não encontrados!!\n Erro:" + 
> event.result.detalhes);
> }
>
> obrigado a todos, tenho acompanhando o Grupo diariamente, e tem me ajudado 
> muito neste aprendizado.
>
>
>
>
>
>
>
>
>  -- 
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para 
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a