Ir para conteúdo

Arquivado

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

alan simao

Formulario enviando 2 x

Recommended Posts

Olá, boa noite;

 

Gostaria de uma ajuda no meu formulário, o mesmo está enviando pro banco de dados 2 x o mesmo formulário. E gostaria que me ajudasse a aparecer uma mensagem de enviado com sucesso que esta na <div> da minha pagina index. 

        // Use Ajax to submit form data
    $(document).ready(function () {
        $('#contact_form').submit(function () {
            var data = $('#contact_form').serialize();

            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: 'rescue.php',
                data: data,
                async: true,
                success: function (response) {
                    location.reload();
                }
            });
            return false;
        })
    })
});

 

E essa é pra envio

 



Include "connect.php";

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$website = $_POST['website'];
$hosting = $_POST['hosting'];
$comment = $_POST['comment'];


$sql= "INSERT INTO accounts (first_name,last_name,email,phone,address,city,state,zip,website,hosting,comment) VALUES ('$first_name','$last_name','$email','$phone','$address','$city','$state','$zip','$website','$hosting','$comment')";
mysqli_query($mysqli,$sql) or die(error());

    echo json_encode("success_message");


Compartilhar este post


Link para o post
Compartilhar em outros sites

Como que você esta disparando o submit?

 

No form está configurado o action para chamar esta página rescue.php? Não poderia estar enviando uma vez pelo form e outra vez pela chamada ajax?

 

Só alguns chutes, não dá para saber sem olhar toda a pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, o problema da duplicação eu resolvir, só que não está aparecendo a mensagem de "formulario enviado com sucesso.

 

 

//<button type="submit" id="btEnviar" class="btn btn-warning">Send <span class="glyphicon glyphicon-send"></span></button>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte:

 

1 - Muda o botão para o tipo "button"

<button type="button" id="btEnviar" class="btn btn-warning">Send <span class="glyphicon glyphicon-send"></span></button>

 

2 - Muda seu javascript para ser disparado no evento click do button

$('#btEnviar').click(function () {

 

Com isso o botão não irá disparar o submit do formulário e ele executará o envio das informações via ajax. Acredito que isso irá resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece muito!

Para resolver o problema eu utilizei o unbind e preventDefault olha ai:

 

no html eu coloco:

<button type="button" onclick="area('meuformulario','url-que-vou-chamar','div-onde-vou-printar-o-retorno');">meu botão</button>

 

Meu arquivo ajax.js

function Area(dados ,url_dest, divCallback){
    
    var frm = $('#'+dados); //id do meu formulario
    
    $(frm).unbind().submit(function(e){ //ao aplicar o unbind o meu script evita as requisições duplicadas
        
    var urlReq                = url_dest;
    var divBack              = divCallback;
    
$.ajax({
    type: "POST", 
    url: "includes/paginas/"+urlReq+".php",
    dataType:"html",
    cache:false,
    data: frm.serialize(),
    
            beforeSend: function(){
                $("#"+divBack).html('<span class=\'loader\' style=\'display:block\'></span>');
            },
      
              success: function(msg) {
            $("#"+divBack).html(msg);
            }
    });
    
    e.preventDefault(); //mais uma função para garantir que não seja duplicada a requisição
    return false;
    
    });
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de poder tirar uma dúvida com os amigos.
       
      Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ?

      Data Digitada:  01/09/2024
       
      Exemplo:
      25/09/2024 é menor que DATA Atual  ====> mensagem: informe uma data válida.
      25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's.
       
      Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual.
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Quando programava em DOS. utilizava algumas teclas de atalho para: SALVAR / EDITAR / EXCLUIR / IMPRIMIR.
      Por exemplo:
      Salvar ----> ALT+S
      Editar ----> ALT+E
      Excluir --> ALT+X
      Imprimir -> ALT+I

      no PHP tem como colocar esses ATALHOS nos button, para o usuário trabalhar com esses atalhos e como seria ?

      grato,
       
      Cesar
    • Por violin101
      Caros Amigos, saudações.
       
      Por favor, me perdoa em postar uma dúvida.
       
      Preciso criar uma Rotina onde o usuário possa buscar na Base de Dados de Produtos, tanto por Código e Descrição, ou seja:
      - caso o usuário digita o Código, mostra os dados do Produto.
      - caso o usuário digita a Descrição, mostra os dados do Produto
       
      Fiz uma Rotina, onde o usuário digita a DESCRIÇÃO com a função AUTOCOMPLETE.    <=== está funcionando certinho.
       
      Minha dúvida é como faço para DIGITAR o Código e mostrar os dados também.
       
      o meu AutoComplete na MODEL está assim.
      public function autoCompleteProduto($q){ $this->db->select('*' ) ->from('produtos') ->where('produtos.statusProd',1) ->like('descricao', $q) ->limit(5) ->order_by('descricao', 'ASC'); $query = $this->db->get(); if ($query->num_rows() > 0) { foreach ($query->result_array() as $row) { $row_set[] = ['label' => str_pad($row['idProdutos'], '5', '0', STR_PAD_LEFT).' - '.$row['descricao'], 'id' => $row['idProdutos'], 'descricao' => $row['descricao'], 'cod_interno' => $row['cod_interno'], 'prd_unid' => $row['prd_unid'], 'estoque_atual' => $row['estoque_atual'] ]; } echo json_encode($row_set); } }  
       
      no CONTROLLER está assim:
      public function autoCompleteProduto() { $this->load->model('estoque/lancamentos_model'); if (isset($_GET['term'])) { $q = strtolower($_GET['term']); $this->lancamentos_model->autoCompleteProduto($q); } }  
       
      na VIEW está assim:
      <div class="col-md-10"> <label for="idProdutos">Produto:</label> <input type="hidden" name="idProdutos" id="idProdutos"> <input type="text" class="form-control" id="descricao" name="descricao" style="font-size:15px; font-weight:bold;" placeholder="Pesquisar por descrição do produto" disabled> </div>  
      VIEW + JAVASCRIPT
       
      //Função para trazer os Dados pelo o AutoComplete. function resolveAutocomplete() { $("#descricao").autocomplete({ source: "<?php echo base_url(); ?>estoque/lancamentos/autoCompleteProduto/", minLength: 2, select: function (event, ui) { $("#idProdutos").val(ui.item.id); $("#cod_interno").val(ui.item.cod_interno); $("#descricao").val(ui.item.descricao); $("#prd_unid").val(ui.item.prd_unid); $("#estoque_atual").val(ui.item.estoque_atual); $("#qtde").focus(); } }); } // inicia o autocomplete resolveAutocomplete();  
      Grato,
       
      Cesar
    • Por belann
      Olá!
       
      Estou tentando criar um projeto laravel e está dando o seguinte erro 
      curl error 60 while downloading https://getcomposer.org/versions: SSL certificate problem: unable to get local issu
        er certificate
      Já tentei atualizar o composer, mas dá o mesmo erro acima.
×

Informação importante

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