Ir para o conteúdo

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

Como obter dados de campos addTextField

11 de Junho de 2014, 14:38 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 5 vezes
Prezados, Estou trabalhando em um formulário que segue o "exe_FileAsync.php" (./Base/Exemplos/Campos/Campo arquivo/Assincrono)como base. Entretanto preciso obter os dados contidos na caixa de texto "Arquivo". Neste caso, fiz uso da seguinte linha de comando: $arquivo-> $frm->getField('arquivo'); Porém, quero direcionar parte deste objeto $arquivo para uma string utilizando a função substr sem sucesso. Dúvida: qual seria a melhor forma de obter a informação do campo arquivo para manipulá-la a posteriori? Obrigada, Aline.

Autor: Paiva Macena


88 comentários

  • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
    11 de Junho de 2014, 14:47

     

    Experimente: $arquivo = $frm->get('campo_arquivo');

    • 0bff3f2dc09b5e88a47cb2a7528e767a?only path=false&size=50&d=404Paiva Macena(usuário não autenticado)
      11 de Junho de 2014, 15:26

       

      Jair, obrigada pelo retorno.

      Utilizei as seguintes linhas de código:
      $arquivo = $frm->get('campo_arquivo');
      echo 'teste:' .$arquivo;

      Usei o echo para verificar se o dado esperado estava sendo armazenado na variável $arquivo. Mas apenas a informação "teste: " é exibida na tela. Você saberia me informar se fiz algo indevido?

      Obrigada,
      Aline.

      • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
        11 de Junho de 2014, 20:26

         

        Poste o código completo da página em questão, pois falar genericamente fica difícil!

         

        • 0bff3f2dc09b5e88a47cb2a7528e767a?only path=false&size=50&d=404Paiva Macena(usuário não autenticado)
          13 de Junho de 2014, 10:11

           

          Jair,

          Está correto. Disponibilizo o código em anexo.
          Preciso utilizar a função substr no conteúdo do addTextField relacionado na linha 6. Para isso joguei o conteúdo todo para a variável $arquivo, no entanto me parece que não foi uma boa solução porque $arquivo está sendo encarada como um objeto e eu preciso trabalhar com string.

          Obrigada,
          Aline.

          • 0bff3f2dc09b5e88a47cb2a7528e767a?only path=false&size=50&d=404Paiva Macena(usuário não autenticado)
            13 de Junho de 2014, 10:15

             

            1 setColumns(array(100,100));
            5 $frm->addFileField('anexo','Anexo:',true,'txt','60M',40,true,null,'callBackAnexar');
            6 $frm->addTextField('arquivo','Arquivo:',60);
            7 $frm->addTextField('tipo','Tipo:',40);
            8 $frm->addTextField('tamanho','Tamanho (kb):',20);
            9 $frm->addTextField('local','Local temp:',60);
            10 $arquivo = $frm->getField('arquivo');
            11 $frm->addButton('Gravar', 'gravar', 'btnGravar', NULL, NULL, true, false);
            ?>

            • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
              13 de Junho de 2014, 12:58

               

              <?php
              global $arquivo;
              $frm = new TForm('Processamento',300,700);
              // define a largura das colunas verticais do formulario para alinhamento dos campos
              $frm->setColumns(array(100,100));
              $frm->addFileField('anexo','Anexo:',true,'txt,pdf','60M',40,true,null,'callBackAnexar');
              $frm->addTextField('arquivo','Arquivo:',60);
              $frm->addTextField('tipo','Tipo:',40);
              $frm->addTextField('tamanho','Tamanho (kb):',20);
              $frm->addTextField('local','Local temp:',60);

              /* Cria a variável $arquivo e coloca valor nela, ao mesmo tempo aplica
              * substr no resultado da função
              * get('nome_do_campo_que_quer_pegar_o_valor_digitado')
              * do objeto $frm
              */
              $arquivo = substr($frm->get('arquivo'), 0, 8);

              /* Testa se o campo foi postado
              if($_POST['arquivo']){
                  echo $arquivo;
              }
              else{
                  echo "a variável \$arquivo está vazia";
              }
              $frm->addButton('Gravar', 'gravar', 'btnGravar', NULL, NULL, true, false);
              $frm->show();
              ?>

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    14 de Junho de 2014, 19:07

     

    Paiva/Aline,

     Quando o campo arquivo async é adicionado ao form, ele cria automaticamente os
     seguintes campos ocultos que são postados e alimentados automaticamente:
     xxxxx_size
     xxxxx_temp_name
     xxxxx_extension
     xxxxx_type

     Sendo xxxxx o nome do campo utilizado em addFileField('xxxxx')

     Ao postar o formulário você pode recuperar estes campos
     
      echo 'Nome do Arquivo:'.$_POST['xxxxx'].'<br>';
      echo 'Tamanho:'.$_POST['xxxxx_size'].'<br>';
      echo 'Arquivo Temporário:'.$_POST['xxxxx_temp_name'].'<BR>';
      echo 'Arquivo Temporário:'.$_POST['xxxxx_extension'].'<BR>';
      echo 'Extensão:'.$_POST['xxxxx_extension'].'<BR>';
      echo 'Tipo:'.$_POST['xxxxx_type'].'<BR>';
      echo 'Conteudo do arquivo:'.$frm->getField('xxxxx')->getContent().'<br>';
      //ou echo file_get_contents($frm->getBase().'nome_do_arquivo_temp_criado');

    Detectei um problema na recuperação do getContent() que vou corrigir este fim de semana. Faça a atualização do formdin assim que possível.

    Abraço.
     

    • 0bff3f2dc09b5e88a47cb2a7528e767a?only path=false&size=50&d=404Paiva Macena(usuário não autenticado)
      16 de Junho de 2014, 10:19

       

      Prezados,

      Muito obrigada!
      Luiz Eugênio, através de suas explicações consegui obter o nome do arquivo e trabalhar com a função substr.

      Obrigada,
      Aline Paiva.

Essa comunidade não possui posts nesse blog