Boa noite, sou iniciante em PHP e estou orientando a objetos um sisteminha que comecei a desenvolver no semestre passado da minha faculdade. Mas estou com um problema, se alguém souber como me ajudar, ficaria muito grata. Acontece o seguinte, tenho meu formulário de cadastro que chama uma página PHP que pega os dados do formulário (<form action="cidadeGerencia.php" ...) Essa pagina, cidade gerencia cria um objeto da minha classe cidade, adicionando os dados do formulário e chama a página que inclui ou altera os dados dos bancos. Meu problema é nessa pagina "cidadeGerencia", vou colar o código para explicar melhor. <?php
include_once ("../../classes/cidade.class.php");
include_once ("../../banco_de_dados/cidade.bd.php");
class cidadeGerencia{
public function cidadeGerencia(){
$opcao = $_POST['opcao'];
switch($opcao){
case 'Incluir':{
cadastrar();
break;
}
case 'Alterar':{
alterar();
break;
}
}
}
public function cadastrar(){
$cidade = new cidade();
$cidadeBD = new cidadeBD();
$cidade->setCep($_POST['cep']);
$cidade->setNome($_POST['nome']);
$cidade->setEstado($_POST['estado']);
if($cidadeBD->Incluir($cidade)==true){
//header( "Location: ../view/ok.html" );
echo "<script type='text/javascript'> alert('Dados inseridos com sucesso!');
window.location.href='cadastroCidade.php'; </script>";
} else {
//header( "Location: ../view/erro.html" );
echo "<script type='text/javascript'> alert('Erro ao gravar dados!');
window.location.href='cadastroCidade.php'</script>";
}
}
public function alterar(){
$cidade = new cidade();
$cidadeBD = new cidadeBD();
$cidade->setCep($_POST['cep']);
$cidade->setNome($_POST['nome']);
$cidade->setEstado($_POST['estado']);
if($cidadeBD->Alterar($cidade)==true){
//header( "Location: ../view/ok.html" );
echo "<script type='text/javascript'> alert('Dados alterados com sucesso!');
window.location.href='cadastroCidade.php'; </script>";
} else {
//header( "Location: ../view/erro.html" );
echo "<script type='text/javascript'> alert('Erro ao alterar dados!');
window.location.href='cadastroCidade.php'</script>";
}
}
}
?>
O meu problema é que, o formulário chama esta página, mas não "entra" na classe ou no método construtor dela, então não acontece nada.
Sei que o problema está na hora de "chamar" a classe ou o construtor da classe, e não com minhas funções, porque se eu deixar o código fora da classe da certo.
Assim:
<?php
include_once ("../../classes/cidade.class.php");
include_once ("../../banco_de_dados/cidade.bd.php");
$cidade = new cidade();
$cidadeBD = new cidadeBD();
$cidade->setCep($_POST['cep']);
$cidade->setNome($_POST['nome']);
$cidade->setEstado($_POST['estado']);
if($cidadeBD->incluir($cidade)==true){
//header( "Location: ../view/ok.html" );
echo "<script type='text/javascript'> alert('Dados inseridos com sucesso!');
window.location.href='cadastroCidade.php'; </script>";
} else {
//header( "Location: ../view/erro.html" );
echo "<script type='text/javascript'> alert('Erro ao gravar dados!');
window.location.href='cadastroCidade.php'</script>";
}
?> desse modo já testei e funcionou perfeitamente. Também testei colocando o código da função direto no switch, e no método construtor da classe. Nenhum desses modos funcionou. Então o problema não é com minha função ou com o switch. Não sei o que fazer pra solucionar isso, se alguém souber uma solução, ou então descobrir o que estou fazendo de errado, por favor me dê uma luz. Muito obrigada desde já.