Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PAULO ROBERTO NOGUEIRA

[Resolvido] Formulario enviando dados apos insert

Recommended Posts

Bom dia. Pessoal, quando eu gravo novos registros através do formulário o sistema repete esses dados quando clico no F5. Eu fazia um redirecionamento para pagina inicial e um die() depois do insert, mas com o pdo nao esta funcionando. O que pode ser feito pra evitar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites
 public function insert()
        {
            try{
            $sql = "INSERT INTO $this->tabela (nva_nome, nva_inlcuir, nva_excluir, nva_visualizar, nva_dataCad, nva_status) VALUES (:nva_nome, :nva_incluir, :nva_excluir, :nva_visualizar, :nva_dataCad, :nva_status)";
     
            $stm = DB::prepare($sql);
            //substituir
            $stm->bindValue(':nva_nome', $this->getNva_nome());
            $stm->bindValue(':nva_incluir', $this->getNva_incluir());
            $stm->bindValue(':nva_excluir', $this->getNva_excluir());
            $stm->bindValue(':nva_visualizar', $this->getNva_visualizar());
            $stm->bindValue(':nva_dataCad', $this->getNva_dataCad());
            $stm->bindValue(':nva_status', $this->getNva_status());
            
            //Gravando o log
            DB::setLogger(new TLoggerTXT('./tmp/arquivo.txt'));//grava o rquivo de log
            DB::log("Inserindo registro");
            DB::log($sql);
         
            return $stm->execute();
         
                      header('Location: cadFuncoes.php');
                      die();
            
        
    
            } catch (ErrorException $ex)
            {
                echo "Erro : ".$ex->getMessage();
            }
          
                    
        }

Veja, o insert eh executado com uma instancia da classe no formulario...ele executa direito, salva no banco, mas nao direciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está dando o retorno no execute. Por isso não redireciona. Retire o header e o die daí. Coloque o redirecionamento após a chamada da função.


 

$var->insert();

header();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, PAULO ROBERTO NOGUEIRA disse:

$sql = "INSERT INTO $this->tabela (nva_nome, nva_inlcuir

 

@PAULO ROBERTO NOGUEIRA

 

digitou errado o incluir, não seria nva_incluir ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse nome esta errado mas foi o cara que fez o banco que digitou errado. O simulado é dividir o pessoal em equipes e cada uma fica com uma parte, o "DBA" digitou errado o campo...vou mudar qdo pegar o projeto todo. Obrigado.

Sobre o header agora ele retorna um erro:

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64\www\b2ava.com.br\menu.php:48) in C:\wamp64\www\b2ava.com.br\cadFuncoes.php on line 53

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha a gambiarra pra dar certo:

                                 echo "<script>";
                               echo "location.href='cadFuncoes.php' ";
                               echo "</script>";

 

um script js que redireciona para a propria pagina....ate resolver de outro jeito vai ficar assim

se você puder me ajudar ainda eu agradeço, vou continuar o projeto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o header no return...

 

//Gravando o log
            DB::setLogger(new TLoggerTXT('./tmp/arquivo.txt'));//grava o rquivo de log
            DB::log("Inserindo registro");
            DB::log($sql);
            $stm->execute();
            return header('Location: pagina.php');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal...continuando rs...Tenho um função javascript que pega os dados do registro e encaminha para um form modal para que o usuario possa alterar as informacoes, basicamente ele pega os dados da linha da tabela, chama a funcao passando esses dados nos parametros. Bom dai a funcao encaminha esses dados para o form do modal usando o ID de cada componente. Acontece que se o componente for do tipo text, blz, ele encaminha e o modal aparece preenchido, mas eu tenho campos do tipo radio e enviando o valor ao componente do tipo radio ele nao aceita, simplesmente aparece sem estar checked...o que eu preciso eh que quando eu clicar para alterar a funcao encaminhe ao form do modal todos os dados completos preenchidos para que o usuario altere. o que for text com seus respectivo valor, o que for radio marcado o que estiver marcado. Entenderam?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um novo tópico para sua dúvida, na área de JavaScript. Você precisa fazer a condição IF no seu JS para os valores e então marcar o rádio ou checkbox.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.