Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Valor do Selectfield

11 de Setembro de 2012, 14:55 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 0 vezes

Pessoal, para eu pegar valor de um campo do formulario eu uso $frm->get('campo se for text field'), agora para um select isto me tras um array de dados e eu estou precisando somente do valor escolhido no campo select, qual instrucao para pegar somente o valor selecionado?Deve ter jeito pois na inclusao ou alteracao ele pega somente o valor selecionado e grava no BD.


Autor: Paulo Delphino


44 comentários

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    12 de Setembro de 2012, 8:31

     

    Paulo, 

    nos testes que que fiz o método get retorna somente o valor do campo select, não está retornando um array conforme voce disse. Como voce está populando o campo select ?

    Fiz os seguintes testes:

    criei o campo: $frm->addSelectField('cancelado','Cancelado:',null,'0=Não,1=Sim');

    quando submeti o form imprimi assim:

    echo $frm->get('cancelado');

    e mostrou somente 0 ou 1 conforme selecionei.

    Existe tambem outra forma mas deu o mesmo resultado assim:

    echo $frm->getField('cancelado')->getValue();

    Abraço.

    • Ae815677646a23f66119953390bae133?only path=false&size=50&d=404Paulo Delphino(usuário não autenticado)
      12 de Setembro de 2012, 9:41

       

      Estou populando com(exemplo) GrupoDAO::SelectAll,

      nao estou conseguindo fazer isto:

      $intervalo =  TPDOConnection::executeSql('select ipinicial, ipfinal from grupos where codigogrupo =  '. $frm->get('codigogrupo'));

      ai me parece que esta me retornando uma array() e nao um unico codigo

      se eu fizer assim funciona:

      $intervalo =  TPDOConnection::executeSql('select ipinicial, ipfinal from grupos where codigogrupo =  1'); botei o 1 como exemplo

       

      o nome da chave primaria da tabela grupo é codigogrupo e o nome do selectfield é codigogrupo.

      • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
        12 de Setembro de 2012, 15:30

         

        Paulo,

        realmente deveria funcionar, me envie o codigo de criação do campo select 'codigogrupo' no formulário.

        Uma dica: sempre que for executar um sql faça assim:

        $intervalo =  TPDOConnection::executeSql('select ipinicial, ipfinal from grupos where codigogrupo =  ?', $frm->get('codigogrupo') );

        para evitar sql injection.

        Abraço.

        ai
         

Essa comunidade não possui posts nesse blog