Usando o package HTML QuickForm da PEAR (primeira parte)
Por fim o último exemplo do artigo:
<?php
// Include do package QuickForm
require_once 'HTML/QuickForm.php';
// Instanciando
$form = new HTML_QuickForm( 'noticiasForm1' );
// Validando o Form
if ($form->validate()) {
// Pegandos as variaveis
$submitValues = $form->getSubmitValues( );
echo "Todos os valores <BR>" . $submitValues['title'] . "<BR>" . $submitValues['smallText'] . "<BR><BR>";
// Outro modo
$titleForm = $form->getSubmitValue( 'title' );
$smallTextForm = $form->getSubmitValue( 'smallText' );
echo "1 de cada vez <BR> " . $titleForm . "<BR>" . $smallTextForm . "<BR><BR>";
} else {
// Array que vai ser usada no item select
$arraySelect = array( '1' => 'Valor 1', '2' => 'Valor 2' );
// 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 ) );
$form->addElement( 'select', 'values', 'Valores:', $arraySelect );
// 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%
Validando o form:
if ( $form->validate( ) )
Usando o método validade, assim que todas as regras forem cumpridas volta true.
Pegandos os valores do form:
$submitValues = $form->getSubmitValues( );
O métodos getSubmitValue() volta todos os valores dos itens adicionados com o método addElement.
Por exemplo:
$submitValues['smallText']
$submitValues['btnSubmit']
Ou tentando um valor por vez:
// Outro modo
$titleForm = $form->getSubmitValue( 'title' );
$smallTextForm = $form->getSubmitValue( 'smallText' );
Colocando um item select de exemplo:
Pode ser modificado sem dificuldade para informações vindo do banco de dados.
// Array que vai ser usada no item select
$arraySelect = array( '1' => 'Valor 1', '2' => 'Valor 2' );
$form->addElement( 'select', 'values', 'Valores:', $arraySelect );
Por fim tente usar o métodos freeze()
$form->freeze();
Esse método é legal, mostra seu form de forma não editavel.
Por enquanto é isso pessoal, essa primeira parte bem básica prometendo ficar muito melhor.
Referências:
Documentação do HTML::QuickForm
http://pear.php.net/package/HTML_QuickForm
<?php
// Include do package QuickForm
require_once 'HTML/QuickForm.php';
// Instanciando
$form = new HTML_QuickForm( 'noticiasForm1' );
// Validando o Form
if ($form->validate()) {
// Pegandos as variaveis
$submitValues = $form->getSubmitValues( );
echo "Todos os valores <BR>" . $submitValues['title'] . "<BR>" . $submitValues['smallText'] . "<BR><BR>";
// Outro modo
$titleForm = $form->getSubmitValue( 'title' );
$smallTextForm = $form->getSubmitValue( 'smallText' );
echo "1 de cada vez <BR> " . $titleForm . "<BR>" . $smallTextForm . "<BR><BR>";
} else {
// Array que vai ser usada no item select
$arraySelect = array( '1' => 'Valor 1', '2' => 'Valor 2' );
// 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 ) );
$form->addElement( 'select', 'values', 'Valores:', $arraySelect );
// 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%
Validando o form:
if ( $form->validate( ) )
Usando o método validade, assim que todas as regras forem cumpridas volta true.
Pegandos os valores do form:
$submitValues = $form->getSubmitValues( );
O métodos getSubmitValue() volta todos os valores dos itens adicionados com o método addElement.
Por exemplo:
$submitValues['smallText']
$submitValues['btnSubmit']
Ou tentando um valor por vez:
// Outro modo
$titleForm = $form->getSubmitValue( 'title' );
$smallTextForm = $form->getSubmitValue( 'smallText' );
Colocando um item select de exemplo:
Pode ser modificado sem dificuldade para informações vindo do banco de dados.
// Array que vai ser usada no item select
$arraySelect = array( '1' => 'Valor 1', '2' => 'Valor 2' );
$form->addElement( 'select', 'values', 'Valores:', $arraySelect );
Por fim tente usar o métodos freeze()
$form->freeze();
Esse método é legal, mostra seu form de forma não editavel.
Por enquanto é isso pessoal, essa primeira parte bem básica prometendo ficar muito melhor.
Referências:
Documentação do HTML::QuickForm
http://pear.php.net/package/HTML_QuickForm
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
(~19 anos atrás)
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
-----------------------------------
$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)
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�as,t�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
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�as,t�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)
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)
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
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").
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
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.
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)