0
respostas

Enviar form sem refresh

Estou precisando fazer o envio de um formulário sem refresh. Eu pensei no PHP com Ajax, tentei o seguinte. Formulário

<form method="post" ajax="true">
                                            <textarea name="mensagem" id="editor3'.$linha['id_banco_questoes'].'" rows="10" cols="80">
                                            </textarea>

                                            <br>
                                            <input type="hidden" name="idquestao" value="'.$linha['id_banco_questoes'].'">
                                            <input type="hidden" name="usuario" value="'.$_SESSION['usuarioNome'].'">

                                            <input type="submit" value="Submit" />      
                                        </form>

JS

<script>

                                         $(document).ready(function(e) {

    $("form[ajax=true]").submit(function(e) {

        e.preventDefault();

        var form_data = $(this).serialize();
        var form_url = $(this).attr("action");
        var form_method = $(this).attr("method").toUpperCase();

        $("#loadingimg").show();

        $.ajax({
            url: form_url, 
            type: form_method,      
            data: form_data,     
            cache: false,
            success: function(returnhtml){                          
                $("#result").html(returnhtml); 
                $("#loadingimg").hide();                    
            }           
        });    

    });

});


    </script>

PHP

<?php
require("conexao.php");

    $idquestao = $_POST['idquestao'];
    $usuariocerto = $_POST['usuario'];
    //$telefone = preg_replace("/[^0-9]/", "", $_POST['telefone']);
    $mensagem = $_POST['mensagem'];

    // Valida se existe algum campo vazio
    // Se ouver, retorna a mensagem de erro
    if(empty($mensagem)):
        echo 'Digite sua mensagem para continuar';
    else:
        // Dados de conexão com o servidor


        // Faz a conexão com o Banco de dados
        $mysqli = new mysqli($conexao);
        // Verifica se ocorreu algum erro
        if (mysqli_connect_errno()):
            trigger_error(mysqli_connect_error());
        endif;

        // Envia os dados pelo método query
        $salvar = $mysqli->query("INSERT INTO `notificacao_erro`(`id_questao_erro`, `nomeusuario_erro`, `notificacaoerro`) VALUES ('{$idquestao}', '{$usuariocerto}','{$mensagem}')");

        // Valida se as informações foram enviadas com sucesso
        if($salvar):
            echo 'OK';
        else:
            echo 'Erro ao salvar sua mensagem';
        endif;

    endif;
    ?>

O formulário está sendo enviado para a página do PHP e salvando corretamente, o meu único problema e que está dando refresh de toda forma.