Autor: Paiva Macena
Como obter dados de campos addTextField
11 de Junho de 2014, 14:38 - | 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.
88 comentários
$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.
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.
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);
?>
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();
?>
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.
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.