
Artigo 50 / 58
Verificar campos vazios nas aplicações PHP-GTK
empty fields on PHP-GTK, PHP-GTK Dialog, campos vazios no PHP-GTK
O código seguinte é uma exemplo muito simples de verificar se um campo está vazio apresentando a respectiva mensagem de erro ao utilizador.
<?php
/********************************************
Autor : José Franco
Data : 04 Maio de 2008
Lisenca : Creative Commons
Distro : Verificar campos vazios no PHP-GTK2
***********************************************/
//cria a janela
$Janela = new GtkWindow;
$Janela->set_title("Validando campos no PHP-GTK");
$Janela->set_position(Gtk::WIN_POS_CENTER);
$Janela->connect_simple('destroy', array(Gtk, 'main_quit'));
// container
$CaixaV = new GtkVBox();
//caixa de texto
$CaixaT = new GtkEntry;
//botao
$Botao = new GtkButton("Guardar");
/*******************************************************
* liga o botao àfuncção OnSalvar e envia o parametro
* do tipo objecto onde o texto foi escrito (GtkEntry)
*******************************************************/
$Botao->connect_simple('clicked', 'onSalvar',$CaixaT);
// coloca os objectos no container
$CaixaV->pack_start($CaixaT,0,0);
$CaixaV->pack_start($Botao,0,0);
$Janela->add($CaixaV);
// mostra o conteúdo na janela
$Janela->show_all();
/*******************************************
* A função OnSalvar obtem a string digitada
* na caixa de texto e invoca a mensagem de erro
* no caso do campo estar vazio
*********************************************/
function onSalvar(&$caixa){
$str = $caixa->get_text();
if(empty($str)) alerta("Indique o nome do cliente !");
}
/***************************************************
* Cria a janela de alerta
* A fução usa o construtor GtkDialo que mostra uma
* pequena janela e permite adicionar mensagens nesta
* O botão usado é instanciado dos GTK::STOCK buttons
* que generalizam botões previamente tratados , com uma
* imagem neste, sendo mais facil ttar com os sinais que
* emitem (RESPONSE_XX)
****************************************************/
function alerta($info){
$popup = new GtkDialog(
"Alerta",
NULL,
Gtk::DIALOG_MODAL,array(Gtk::STOCK_OK, Gtk::RESPONSE_OK));
$popup->set_size_request(150,100);
$msg = new GtkLabel($info);
$topArea = $popup->vbox;
$topArea->add($msg);
$popup->show_all();
$rs = $popup->run();
if($rs ===Gtk::RESPONSE_OK){
$popup->destroy();
}
}
//loop de eventos na aplicação
Gtk::main();
?>
Resultado
Não existem comentários para este artigo 
Estão online 3 utilizadores !