Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, pessoal.
Estou tentando aprender orientação a objeto e resolvi montar um sistema simples, que cadastre, edite e exclua dados de funcionários. Ainda não tá completa... to com algumas dúvidas...
1) Como faria para que os botões Editar e Excluir chamem as funções da classe para respectivas ações?
2) Posso usar um alert de javascript no fim de uma função?
3) Estou montando do jeito certo? Estou lendo um livro (Entendendo e dominando o PHP) sobre o assunto para aprender...
4) Eu devo montar a ficha (HTML e PHP) toda dentro da classe e só fazer a chamada no index.php ou devo apenas selecionar os dados na classe e repassar para o index.php, efetuando a montagem HTML no mesmo? Qual opção é mais interessante?
5) Posso criar uma função dentro da classe para exibir um formulário de edição e já linká-loo com a função de edição da classe?
class.php
<?php
class ficha_funcionario {
private $cpf;
##### Função exibir_ficha ##########################################
public function exibir_ficha($cpf){
$this->cpf = mysql_real_escape_string($cpf);
$sql = mysql_query("SELECT * FROM funcionarios WHERE cpf = '".$this->cpf."'");
$retorno_dados = array();
if(mysql_num_rows($sql)!= 0){
$i=0;
while($linha = mysql_fetch_array($sql)){
$retorno_dados[$i] = $linha;
$i++;
}
echo $array_dados[0]['cpf'];
echo "<br />";
echo $array_dados[0]['nome'];
echo "<br />";
echo $array_dados[0]['email'];
echo "<br />";
echo $array_dados[0]['telefone'];
echo "<br />";
echo '<input name="Excluir" type="button" value="Excluir Funcionário" />';
echo '<input name="Editar" type="button" value="Editar Funcionário" />';
}else{
echo "Sinto muito. Os dados desse funcionário não puderam ser recuperados para exibição.";
}
}
##### Função editar_ficha ##########################################
public function editar_ficha($cpf){
$this->cpf = mysql_real_escape_string($cpf);
$sql = mysql_query("UPDATE funcionarios SET contratado = 'Sim' WHERE cpf = '".$this->cpf."' ");
if(!$sql){
echo "Erro no Sistema:".mysql_error();
}
else{
print "<script>alert('Efetuado com sucesso!')</script>";
}
}
##### Função excluir_ficha ##########################################
public function excluir_ficha($cpf){
$this->cpf = mysql_real_escape_string($cpf);
$sql = mysql_query("DELETE FROM funcionarios WHERE cpf= '".$this->cpf."' ");
if(!$sql){
echo "Erro no Sistema:".mysql_error();
}
else{
print "<script>alert('Excluído com sucesso!')</script>";
}
}
} //Fecha Classe
?>
index.php
<?php
include("conexao/config.php");
include("funcoes.php");
include("class.php");
$cpf = protecao($_GET['identificacao']); //Passo a função de proteção para proteção contra sql injection
?>
<div id="ficha_funcionario" class="ficha" align="center" style="width: 800px;">
<?php
//Instanciando novo objeto
$ficha = new ficha_funcionario;
$ficha->exibir_ficha($cpf); //Exibe a Ficha do funcionário
?>
</div>
Se puderem me orientar e dar dicas eu agradeço.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Pode indicar boas fontes para aprender MVC?
Só uma dica, se voce quer aprender e trabalhar do jeito certo você vai ver que compensa muito usar um framework
como no caso o Zend, com você você tem uma programação OOP, MVC e muito bem estruturada
1) Tem varias manerias de se fazer isso, monte uma e faça um padrao para todo projeto
2) Poder pode, mas nao dependa do javascript para um sistema funcionar(salvo extjs) se souber trabalhar com o retorno das funções fica legal
3) Voce precisa entender a logica e conceito de OOP, e lendo apenas 1 livro nao vai te dar essa resposta, porque
nem sempre o autor do livro esta totalmente certo, apenas esta mostrando do jeito que ele sabe fazer.
e minha opniao se quer aprender o certo nunca se contente com o que você fazer, sempre tente melhorar e nao tenha preguiça, o jeito certo sempre é mais dificil e complicado de fazer mas compensa muito os resultados.
4) Aprenda MVC
5) Entenda o conceito de OOP para nao fazer coisas erradas
agora umas dicas sobre oop, uma coisa que o pessoal nao se preocupa na hora de fazer uma classe oop é com o nome que ele da para ela, e isso é muito importante oop é um mundo novo e tudo tem que mudar e esquecer as velhas praticas
um nome tem que ser claro e dizer o que exatamente ele representa, por exemplo ficha_funcionario?, seria mais logico uma classe funcionarios, e outras classes de suporte que precise para o funcionario
metodo exibir_ficha, ele ja pega o cpf e sai executando uma consulta com o banco, mas isso nao esta certo, precisa validar o cpf, depois seria bom criar uma classe para manipular o banco de dados, e conectar no banco só na hora que for usar