+2

Usando o package HTML QuickForm da PEAR (primeira parte)

criado por Paulo Roberto de Castro Filho em 17/03/2004 11:22am
Vamos completar o exemplo:
<?php
// Include do package QuickForm
require_once 'HTML/QuickForm.php';

// Instânciando
$form = new HTML_QuickForm( 'noticiasForm1' );
		
// Adicionando elementos ao form
$form->addElement('header', null, 'Cadastro de Noticias');
$form->addElement( 'text', 'title', 'Titulo:', array( 'size' => 80, 'maxlength' => 250 ) );
$form->addElement( 'textArea', 'smallText', 'Noticia', array( 'cols' => 85, 'rows' => 10 ) );

// Valores default
$form->setDefaults( array( 'title' => 'PHP Desafios' ) ) ;
		
// Regras
$form->addRule('title', 'Titulo nao pode estar em branco', 'required', null, 'client');
$form->addRule('smallText', 'Noticia nao pode estar em branco', 'required', null, 'client');

// Botoes
$form->addElement('submit', 'btnSubmit', 'Enviar');
$form->addElement('reset', 'btnClear', 'Limpar');

// For fim mostrando
$form->display();
?>

%IMAGEM_1%

Colocando valores default no campos:
$form->setDefaults( array( 'title' => 'PHP Desafios' ) ) ;

Veja a sintaxe do método setDefaults.
setDefaults ( array ( string nome do campo => string texto default ) )

Colocando os botões:
$form->addElement('submit', 'btnSubmit', 'Enviar');
$form->addElement('reset', 'btnClear', 'Limpar');
Chamei o método addElement.

Regras com o método addRule:
$form->addRule('title', 'Titulo nao pode estar em branco', 'required', null, 'client');
$form->addRule('smallText', 'Noticia nao pode estar em branco', 'required', null, 'client');

Veja a sintaxe do método addRule.
addRule ( string nome do campo, string mensagem de erro, string tipo da regra )
Com 'client' especificado, um javascript será gerado.

No tipo da regra podemos ter:
Básico
Required, maxlength, minlength, rangelength, regex, email, lettersonly, alphanumeric, numeric, nopunctuation e nonzero, callback e compare.

Para upload de arquivos:
Uploadedfile, maxfilesize, mimetype, filename.

Comentários:

Mostrando 1 - 10 de 13 comentários
Paulo Moreira disse:
baixei essas classes não não sei como instalar no easy php.. tem vários arquivos dependentes que não veem juntos com os arquivos baixados e a extensão não é php... como instalo elas no easyphp1.7 no windows?
29/12/2005 8:48am (~18 anos atrás)

Ricardo disse:
ae cara nesse exemplo eu to usando a extensão PEAR::DB pra conecta, executar querys e trazer resultados...

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

$dsn= "mysql://$user:$pass@$host/$bd";

// Conectando ao BD
$conn= DB::connect($dsn);
if (DB::isError($conn)) {
die ($conn->getMessage());
}

$sql= "SELECT nome, email FROM usuario ORDER by nome ASC";

// executando a consulta
$res= $conn->query($sql);
$i = 1;
while ($lin = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$nome = $lin['nome'];
$email = $lin['usuario_nivel'];

$arraySelect[$i] = "$login";
$i++;
}

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


espero lhe dado uma base de como funciona.

falow
25/05/2005 2:05pm (~19 anos atrás)

Carla H disse:
Olá.

Notei que no seu exemplo, não aparecem palavras acentuadas. Ex:
$form->addElement('header', null, 'Cadastro de Noticias');
$form->addRule('title', 'Titulo nao pode estar em branco', 'required', null, 'client');

No browser aparece: not&#55529;as,t&#56629;lo no lugar de notícias e título.

Estou tentando conseguir fazer aparecer os acentos, mas não estou tendo sucesso. Você sabe se existe alguma configuração para mostrar os acentos?

Valeu
29/06/2004 12:02pm (~20 anos atrás)

Ademir Lima disse:
Não estou conseguindo construir um combobox, usando uma consulta no mysql, alguem tem algum exemplo?
28/04/2004 12:33am (~20 anos atrás)

Olá, pessoal. Gostei mutio do artigo. Isso com certeza irá facilir a vida de muitos na criação de páginas de administração do site.
23/04/2004 2:52pm (~20 anos atrás)

I am Gita disse:
Somente instalando que posso usar esta classe? Não tem alguma forma alternativa de usá-la?
Para quem não tem acesso ao provedor fica difícil uma vez que já tentei falar com o administrador pra incluir e não rolou.

Valeu
nu+1[]
IamGita
13/04/2004 1:18am (~20 anos atrás)

Thiago, não consegui utilizar o link responder mas vai aqui como comentário mesmo :)
Para instalar este pacote da PEAR assim com qualquer outro basta usar o pear.bat que fica na pasta do php. Se este programinha não estiver lá rode o go-pear.bat e siga as instruções para instalá-lo. O procedimento de instalação é muito simples.
Este pacote tem uma dependência: o HTML_Common. Temos que instalar ele antes.
Vamos lá:
entre na pasta do seu php (ex: c:\php)

C:\php>pear install HTML_Common
C:\php>pear install HTML_QuickForm

Pronto, agora para incluir este pacote para você poder utiliza-lo basta colocar o seguinte no começo do fonte:

require_once 'HTML/QuickForm.php';

Não deu certo? Verifique se a variável include_path no seu php.ini contém o caminho certo para a pasta onde estão seus pacotes da PEAR (Ex: include_path=".;C:\php\pear").
07/04/2004 1:15pm (~20 anos atrás)

Paulo, ótimo artigo. Só que na hora de fazer funcionar eu não consegui. Você poderia colocar melhor como "instalar" esta biblioteca.
04/04/2004 9:23pm (~20 anos atrás)

Não cheguei a estudar ainda essa classe, mas já encontrei uma ótima finalidade para ele.

Não sei se esses forms suportam css por exemplo (se suportar ótimo), por que muitos sites que precisam de uma interface mais "futurista" muitas vezes pedem formulários cheios de detalhezinhos e tal.

Mas a QuickForm me será muito útil para o desenvolvimento de interfaces de administração, ou seja, a vulgar admin dos sites

[]`s

Ragen
18/03/2004 6:09pm (~20 anos atrás)

Vou postar alguns exemplos, mas de uma olhada:
http://pear.php.net/manual/en/package.html.html-quickform.html-quickform-renderer-arraysmarty.php

No tudo oq vc disse é certo, mas para mim como formularios envolvem regras (usando regex por exemplo) eu desenvolvo as mesmas em php, e o 'designer' coloca no lugar que ele quer.
18/03/2004 7:50am (~20 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)