Location: PHPKode > projects > PhpWAFr - PHP Web Application Framework > phpwafr-1.1.2/content/object_edit.php
<?php
/**
 * object_edit.php ::  Modelo de página que apresenta um formulário
 * 						 para inclusão/alteração de registros.
 *
 * PHP version 4
 *
 * phpWAFr version 1.1.2
 * copyright (c) 2007 Associação SoftwareLivre.org
 *
 * phpWAFr is an open source PHP library designed to accelerate
 * the development of transactional database Web applications.
 *
 * phpWAFr is released under the terms of the LGPL license 2.1
 * http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html  LGPL License 2.1
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * @package    phpWAFr
 * @version    1.1.2
 * @author     Marcelo Rezende <hide@address.com>
 * @copyright  copyright (c) 2007 Associação SoftwareLivre.org
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html  LGPL License 2.1
 */ 

require_once("../inc/common.php");

/*
	verificação do nível do usuário
*/
verifyUser(1);

/*
	estabelece conexão com o banco de dados
*/
$conn = new db();
$conn->open();

/*
	tratamento de campos, caso seja edição.
	configure conforme suas necessidades
*/
$id = getParam("id"); // captura a variável que veio de object_list
if (strlen($id) > 0) { // edição
	$sql = "SELECT * FROM usuario WHERE usuario_id=" . $id;
	$rs = new query($conn, $sql);
	if ($rs->getrow()) {
		$bd_usuario_id 		= $rs->field("usuario_id");
		$bd_data_cadastro 	= stod($rs->field("data_cadastro"));
		$bd_nome_usuario 	= $rs->field("nome_usuario");
		$bd_senha 			= $rs->field("senha");
		$bd_nivel_acesso 	= $rs->field("nivel_acesso");
		$bd_nome_real 		= $rs->field("nome_real");
		$bd_departamento_id = $rs->field("departamento_id");
		$bd_email 			= $rs->field("email");
		$bd_descricao 		= $rs->field("descricao");
		$bd_ativo 			= $rs->field("ativo");
	}
} else { // inclusão
	$bd_data_cadastro = date("d/m/Y");
	$bd_nivel_acesso  = 1;
}

// definição da expressão SQL para a função listbox
$sqlDepartamento = "SELECT departamento_id as id, nome_departamento as val FROM departamento ORDER BY nome_departamento";

// definição do lookup
$dep = new Lookup();
$dep->setTitle(        		 "Departamentos");
$dep->setFormFieldName(		 "f_departamento_id_teste");
$dep->setTableName(			 "departamento");
$dep->setKeyFieldName(		 "departamento_id");
$dep->setShowFieldName(      "nome_departamento");
$dep->setShowSecondFieldName("nome_departamento"); // opcional
$dep->setFormFieldValue(	 $bd_departamento_id);

// definição da lista para o campo RadioField
$list_nivel = array("1,Operador", "2,Manutenção", "3,Administrador");
?>
<html>
<head>
	<title>object-edit</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" type="text/css" href="<?=CSS_CONTENT?>">
	<script language="javascript" src="../inc/calendario/popcalendar.js"></script>
	<script language="javascript" src="../inc/js/lookup.js"></script>
	<script language="JavaScript" src="../inc/js/focus.js"></script>
	<script language="JavaScript" src="../inc/js/util.js"></script>
	<script language="JavaScript" src="../inc/js/textcounter.js"></script>
	<script language='JavaScript'>
	/*
		função que chama a rotina de salvamento,
		altere somente o nome da página
	*/
	function save() {
		parent.content.document.frm.target = "control";
		parent.content.document.frm.action = "../content/object_save.php";
		parent.content.document.frm.submit();
	}
	
	/*
		exemplo de função que chama script no frame control para complementar o
		processamento dos campos no formulário. normalmente chamado pelo onChange dos
		campos do formulário.
	*/
	function updateField(frm) {
		indice = frm.f_field.selectedIndex;
		localizacao = "object_combo.php?search=" + frm.f_field.options[indice].value;
		parent.control.location = localizacao;
	}
	
	/*
		função que define o foco inicial do formulário,
		altere conforme o campo do formulário
	*/
	function initiate() {
		parent.content.document.frm.f_nome_usuario.focus();
	}
	
	// previne a perda de dados na troca de abas //////////////////////////////////////////////////////////////////
	var alterou = false;
	addEvent(document, 'keyup', function(){alterou=true;});
	addEvent(document, 'change', function(){alterou=true;});
	function verificaAlteracao(obj) {
		if (alterou) {
			return confirm('Dados foram alterados, deseja prosseguir?');
		}
	}

	</script>

</head>
<body class="contentBODY" onload="initiate()">

<?php
pageTitle("Objeto","Edição");

/*
	botões de ações,
	configure conforme suas necessidades
*/
$return = $_SERVER['QUERY_STRING'];

$button = new Button;
$button->addItem(" Salvar ", "javascript:save()",                  "content");
$button->addItem(" Fechar ", "../content/object_list.php?$return", "content");
echo $button->writeHTML();

/*
	controle de abas,
	true, se for a aba da página atual,
	false, se for qualquer outra aba,
	configure conforme o exemplo abaixo
*/
$tabs = new Tabs();
$tabs->setOnclickFunction("return verificaAlteracao()");
$tabs->addItem("Geral", true);
if ($id != "") { // se for inclusão, esconde as outras abas
	$tabs->addItem("Associação", false, "../content/object_association.php?id=$id");
	$tabs->addItem("Ordenação",  false, "../content/object_ordering.php?id=$id");	
	$tabs->addItem("Detalhe",    false, "../content/object_read.php?id=$id");
	$tabs->addItem("Lista 1:N",  false, "../content/object_list_1n.php?id=$id",3);
}
echo $tabs->writeHTML();

echo "<br>";

/*
	Formulário
*/
$form = new Form("frm", "../content/object_save.php", "POST", "control", "100%");
$form->setLabelWidth("20%");
$form->setDataWidth("80%");

$form->addHidden("executed", "s"); // variável de control
$form->addHidden("f_id", $bd_usuario_id); // chave primária
$form->addHidden("page", getParam("page")); // número da página que chamou

$form->addField("Data de cadastro: ", dateField(    		  "f_data_cadastro", $bd_data_cadastro, "readonly"));
$form->addField("Nome do usuário: ",  textField(  			  "f_nome_usuario",  $bd_nome_usuario,  20, 20));
$form->addField("Senha: ",            passwordField(		  "f_password",      $bd_senha,         20, 20) . help("Título da ajuda","Texto de ajuda Texto de ajuda Texto de ajuda Texto de ajuda Texto de ajuda Texto de ajuda"));
$form->addField("Nível de acesso: ",  radioField($list_nivel, "f_nivel_acesso",  $bd_nivel_acesso));
$form->addField("Nome real: ",        textField(    		  "f_nome_real",     $bd_nome_real,     50, 50));
$form->addBreak("<b>Exemplo de quebra de formulário</b>");
$form->addField("Departamento: ",     listboxField($sqlDepartamento, "f_departamento_id", $bd_departamento_id, "", ""));
$form->addField("Departamento 2: ",   $dep->writeHTML());
$form->addField("Departamento 3: ",   scrollBlock(multipleCheckboxField("f_departamento_id_teste2", $bd_departamento_id, "departamento", "departamento_id", "nome_departamento"),"60px","150px"));
$form->addField("E-mail: ",           textField(    		  "f_email",		   $bd_email,		50, 100));
$form->addField("Descrição: ",        textAreaField(		  "f_descricao",	   $bd_descricao,    3, 50, 200));
$form->addField("Ativo: ",            checkboxField(		  "f_ativo", 		   1, $bd_ativo==1));
$form->addField("Documento: ",        fileField(    		  "f_arquivo",         "imagem.jpg",    30));
echo $form->writeHTML();
?>
</body>
</html>
<?php
/*
	encerra a conexão com o banco de dados
*/
$conn->close();
?>
Return current item: PhpWAFr - PHP Web Application Framework