Jump to content
MatheusH

Problema em Formulário com AJAX

Recommended Posts

Olá, alguém pode me ajudar? Fiz um formulário que enviará as informações via ajax no banco de dados. Ocorre tudo bem sem erro, mas não cria nada no banco de dados. 

Obs: todas a conexão com o banco está certo.

 

Form.html

<html>
<head>
	<title>
		
	</title>
</head>
<body>

	<form id="formulario_ajax">
		<label>Nome</label>
		<input type="text" name="nome">
		<label>Cidade</label>
		<input type="text" name="cidade">
		<label>CEP</label>
		<input type="text" name="cep">
		<input type="submit" name="Enviar">
	</form>

<script src="jquery.js"></script>
        <script>
           $('#formulario_ajax').submit(function(e){
                e.preventDefaut();
                var formulario = $(this);
                var retorno = inserirDados(formulario)
            });
            function inserirDados(dados){
                $.ajax({
                    type:"POST",
                    data:dados.serialize(),
                    url:"executa.php",
                    async:false
                }).then(sucesso, falha);

                function sucesso(data){
                    console.log(data);
                }
               function falha(){
                    console.log("erro");
               }
            }
        </script>

</body>
</html>

 

executa.php

<?php 
$server = "localhost";
$login = "root";
$senha = "root";
$db = "formulario";

$conn = mysqli_connect($server, $login, $senha, $db);

$nome = $_POST['nome'];
$cidade = $_POST['cidade'];
$cep = $_POST['cep'];

$sql = "INSERT INTO cadastro";
$sql .= "(nome, cidade, cep)";
$sql .= "VALUES";
$sql .= "('$nome', '$cidade', '$sql')";

if(mysqli_query($conn, $sql)){
	echo "Inserido com sucesso!";
}else{
	echo "Error!";
}

mysqli_close($conn);
?>

 

Alguém sabe porque não ta funcionando?ou se tem algum erro no código?

Share this post


Link to post
Share on other sites

Retorna algum erro?

 

Verificou se está chegando a executar o arquivo executa.php? Se chegar lá e estiver tudo certo(aparentemente está) tem que inserir.

 

jQuery está importado corretamente?

 

Dá um var_dump($_POST); no início do arquivo para garantir.

Share this post


Link to post
Share on other sites

tenta trocar essa linha:

17 horas atrás, MatheusH disse:

$sql .= "('$nome', '$cidade', '$sql')";

 

por essa:

$sql .= "('$nome', '$cidade', '$cep')";

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ricardonews
      Olá pessoal, fiz 2 formularios  de login em jquery e ajax, um eu vi na internert o modelo então fiz umas adaptações e funcionou com meu banco de dados. porem o outro que fiz baseado nele não funcionou. vou postar aqui pra voces o funcionando e o não funcionando, alguém pode me dar uma ajuda?, dizer que erro é esse? ele simplesmente não loga e não aparece erros no console.
      <!doctype html> <html> <?php require_once"config.php"; ?> <head> <title>APRENDIZ DE JS</title> <link href="style.css" rel="stylesheet" type="text/css"> <script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#but_submit").click(function(){ var username = $("#meu_nome").val().trim(); var password = $("#minha_senha").val().trim(); if( username != "" && password != "" ){ $.ajax({ url:'pesquisar.php', type:'post', data:{username:username,password:password}, success:function(response){ var msg = ""; if(response == 1){ window.location = "home.php"; }else{ msg = "Invalid username and password!"; } $("#message").html(msg); } }); } }); }); </script> </head> <body> <div class="container"> <div id="div_login"> <h1>Login</h1> <div id="message"></div> <div> <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="Username" /> </div> <div> <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="Password"/> </div> <div> <input type="button" value="logar" name="but_submit" id="but_submit" /> </div> </div> </div> </body> </html> /* Container */ .container{ width:40%; margin:0 auto; } /* Login */ #div_login{ border: 1px solid gray; border-radius: 3px; width: 470px; height: 270px; box-shadow: 0px 2px 2px 0px gray; margin: 0 auto; } #div_login h1{ margin-top: 0px; font-weight: normal; padding: 10px; background-color: cornflowerblue; color: white; font-family: sans-serif; } #div_login div{ clear: both; margin-top: 10px; padding: 5px; } #div_login .textbox{ width: 96%; padding: 7px; } #div_login input[type=submit]{ padding: 7px; width: 100px; background-color: lightseagreen; border: 0px; color: white; } #message{ width:100%; text-align:center; color:red; } /* media */ @media screen and (max-width:720px){ .container{ width: 100%; } #div_login{ width: 99%; } } <?php require_once "config.php"; // AQUI É O PESQUISAR PHP $uname = mysqli_real_escape_string($con,$_POST['username']); $password = mysqli_real_escape_string($con,$_POST['password']); if ($uname != "" && $password != ""){ $sql_query = "SELECT count(*) as cntUser FROM usuarios WHERE username='".$uname."' and password='".$password."'"; $result = mysqli_query($con,$sql_query); $row = mysqli_fetch_array($result); $count = $row['cntUser']; if($count > 0){ $_SESSION['uname'] = $uname; echo 1; }else{ echo 0; } } <?php require_once "config.php"; // AQUI É A HOME.PHP // Check user login or not if(!isset($_SESSION['uname'])){ header('Location: index.php'); } // logout if(isset($_POST['but_logout'])){ session_destroy(); header('Location: index.php'); } ?> <!doctype html> <html> <head> <title>SEJA BEM VINDO!</title> </head> <body> <h1>PÁGINA INICIAL</h1> <form method='post' action=""> <input type="submit" value="SAIR" name="but_logout"> </form> </body> </html> <?php // ESSE AQUI É A CONFIG.PHP session_start(); $host = "localhost"; /* Host name */ $user = "root"; /* User */ $password = ""; /* Password */ $dbname = "login2"; /* Database name */ $con = mysqli_connect($host, $user, $password,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); } Então pessoal, até aqui funciona normal .
      agora a linha abaixo é oque não funciona e eu vou postar só a index e o css porque repete o de cima.
      se alguém poder me ajudar eu fico grato. desde já muito obrigado
      <html> <?php require_once"config.php"; ?> <head> <title>Formulario de login </title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#but_submit").click(function(){ var username = $("#meu_nome").val().trim(); var password = $("#minha_senha").val().trim(); if( username != "" && password != "" ){ $.ajax({ url:'pesquisar.php', type:'post', data:{username:username,password:password}, success:function(response){ var msg = ""; if(response == 1){ window.location = "home.php"; }else{ msg = "Invalid username and password!"; } $("#message").html(msg); } }); } }); }); </script> </head> <body> <form id="formulario" method="post"> <fieldset> <h2>Configuracoes da conta</h2> <h3>Area de login </h3> <input type="text" id="meu_nome"name="meu_nome" placeholder="username" /> <input type="password" id="minha_senha " name="minha_senha" placeholder="digite sua senha" /> <input type="submit" class="next acao" value="Logar" /> </fieldset> </body> </html> agora é o css
      *{margin:0; padding:0;} html{ height:100%; background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9)); } .erros, .ok { width:390px; padding:5px; background:rgba(238, 249, 113, 0.9); margin: 20px auto 0 auto; border: 1px solid rgba(222,239,10,0.9); border-radius: 4px; color: #333; } .ok{background: rgba(155,222,143,0.9);border-color: rgba(68, 171, 50, 0.9);color:white;} body{ font-family: "Trebuchet MS", tahoma, arial; } #formulario{ width:500px; margin:40px auto; text-align:center; position:relative; } #formulario fieldset{ background:white; border:0 none; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; box-shadow:0 0 15px 1px rgba(0,0,0, 0.4); padding:20px 30px; box-sizing: border-box; width:80%; margin:0 10%; position:absolute; } #formulario input, #formulario textarea{ padding:10px; border:1px solid rgba(38, 128, 101, 0.9); border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; outline:none; box-sizing: border-box; width:100%; font:14px "Trebuchet MS", tahoma, arial; color:#090; margin-bottom:10px; } #formulario .acao{ width:100px; background:rgba(38, 128, 101, 0.9); color:white; text-transform:uppercase; font-weight:bold; padding:12px 0; float:left; margin-right:5%; } #formulario .acao:hover{background:rgba(52, 177, 140, 0.9); cursor:pointer;}  
    • By FabianoSouza
      Quero saber dos colegas se há diferença de desempenho e qual a forma mais adequada para enviar dados via AJAX.
      É melhor enviar o form todo ou criar um array com os valores e enviar a string?
       
      Quero saber isso porque quando preciso enviar dados + arquivo (submetendo o form) gera problema de charset no lado do servidor (trunca os caracteres acentuados). Não consigo resolver isso.
       
      Diante dessa situação penso em criar a seguinte lógica para conseguir enviar dados e arquivo:
      1) Com o form definido como "application/x-www-form-urlencoded", faço o submit e gravo os dados com linguagem server side.
      2) Se a operação tiver sucesso, via javascript altero o enctype do form para multipart/form-data, altero o atributo action para a  página que faz o upload do arquivo e submeto o form novamente.
       
      O que os amigos acham dessa lógica?
       
      Valew.
       
    • By ricardonews
      Olá pessoal, fiz um formulario de cadastro usando o jquery ,ajax com o json. só que agora eu estou querendo logar  no banco, fiz todo o procedimento normal que se faz para site em php, mas não consegui nada,  eu tenho algumas imagem aqui  vou colocar.
      Queria logar, eu coloquei a index  sem o php porque tentei com php e js mas nao funcionou , alguem pode me ajudar ?
      desde já obrigado.




    • By luigiferrari
      Bom dia, eu gostaria de fazer dois botões na datatable, um para excluir e outro que direcionaria o usuario para outra página.
      Meu index.php está desta forma, 
      <?php include('scripts/inicio.php') ?> <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css"> <script src="https://code.jquery.com/jquery-3.3.1.js"></script> <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script> <script src="//cdn.datatables.net/plug-ins/1.10.19/i18n/Portuguese-Brasil.json"></script> <script src="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css"></script> <script src="../../extensions/Editor/css/editor.dataTables.min.css"></script> <script> $(document).ready(function() { $('#listar-usuario').DataTable({ "processing": true, "serverSide": true, "ajax": { "url": "proc_pesq_registro.php", "type": "POST" } }); } ); </script> <script> // $(document).ready(function() { //$('#listar-usuario').DataTable( { //"language": { //"sEmptyTable": "Nenhum registro encontrado", // "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros", //"sInfoEmpty": "Mostrando 0 até 0 de 0 registros", // "sInfoFiltered": "(Filtrados de _MAX_ registros)", // "sInfoPostFix": "", //"sInfoThousands": ".", //"sLengthMenu": "_MENU_ resultados por página", //"sLoadingRecords": "Carregando...", //"sProcessing": "Processando...", //"sZeroRecords": "Nenhum registro encontrado", //"sSearch": "Pesquisar", //"oPaginate": { // "sNext": "Próximo", // "sPrevious": "Anterior", //"sFirst": "Primeiro", //"sLast": "Último" //}, //"oAria": { // "sSortAscending": ": Ordenar colunas de forma ascendente", //"sSortDescending": ": Ordenar colunas de forma descendente" //} //} // } ); //} ); </script> <title>Registos</title> </head> <body> <div class="container"> <div class="row"> <div class="col-md-8 col-lg-8"> <a href="cadregistro.php" class="btn btn-primary">Voltar</a> <a href="index.php" class="btn btn-primary">Home</a> <hr class="new1"> </div> <div class="col-md-4"> <a href="http://www.novalima.mg.gov.br/" target="_blank" class="thumbnail" > <img data-src="holder.js/100%x180" /> <img src="imagens/logo.png" class="img-responsive" alt="PMNL" /> </a> </div> </div> <center><h1>Registros</h1></center> <br><br><br> <div class="row"> <div class="col-md-12"> <br><br> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title painel-title-responsive">Registros</h3> </div> <div class="panel-body"> <table id="listar-usuario" class="table table-striped table table-bordered table-hover table-responsive"> <thead> <tr> <th>Data de Abertura</th> <th>Data do Serviço</th> <th>Data da Busca</th> <th>Comentarios</th> <th>Cliente</th> <th>Problema</th> <th>Prestador</th> <th>Id</th> </tr> </thead> </table> </div> </div> </div> </body> <htnl> PS: Também gostaria de deixar o form em português, o código está como comentário pois quando coloco ele, traduz, porém não lista nada...
       
      Já a página proc_pesq_registro.php está desta forma:
      <?php include_once("conexoes/conexao.php"); ?> <?php //Receber a requisão da pesquisa $requestData= $_REQUEST; //Indice da coluna na tabela visualizar resultado => nome da coluna no banco de dados $columns = array( 0 =>'dataabertura_os', 1 => 'dataservico_os', 2=> 'databusca_os', 3=> 'comentario_servico', 4=> 'tbl_cliente_id_cliente', 5=> 'tbl_prestador_id_prestador', 6=> 'tbl_categoria_id_categoria', 7=> 'id_os', ); //Obtendo registros de número total sem qualquer pesquisa $result_user = "SELECT * from tbl_os inner JOIN tbl_cliente on tbl_cliente.id_cliente = tbl_os.tbl_cliente_id_cliente inner JOIN tbl_prestador on tbl_prestador.id_prestador = tbl_os.tbl_prestador_id_prestador INNER JOIN tbl_categoria on tbl_categoria.id_categoria = tbl_os.tbl_categoria_id_categoria "; $resultado_user =mysqli_query($conn, $result_user); $qnt_linhas = mysqli_num_rows($resultado_user); //Obter os dados a serem apresentados $result_usuarios = "SELECT * from tbl_os inner JOIN tbl_cliente on tbl_cliente.id_cliente = tbl_os.tbl_cliente_id_cliente inner JOIN tbl_prestador on tbl_prestador.id_prestador = tbl_os.tbl_prestador_id_prestador INNER JOIN tbl_categoria on tbl_categoria.id_categoria = tbl_os.tbl_categoria_id_categoria WHERE 1=1"; if( !empty($requestData['search']['value']) ) { // se houver um parâmetro de pesquisa, $requestData['search']['value'] contém o parâmetro de pesquisa $result_usuarios.=" AND ( dataabertura_os LIKE '".$requestData['search']['value']."%' "; $result_usuarios.=" OR dataservico_os LIKE '".$requestData['search']['value']."%' "; $result_usuarios.=" OR databusca_os LIKE '".$requestData['search']['value']."%' "; $result_usuarios.=" OR comentario_servico LIKE '".$requestData['search']['value']."%' "; $result_usuarios.=" OR nome_cliente LIKE '".$requestData['search']['value']."%' "; $result_usuarios.=" OR nome_prestador LIKE '".$requestData['search']['value']."%' "; $result_usuarios.=" OR descricao_categoria LIKE '".$requestData['search']['value']."%' "; $result_usuarios.=" OR id_os LIKE '".$requestData['search']['value']."%' )"; } $resultado_usuarios=mysqli_query($conn, $result_usuarios); $totalFiltered = mysqli_num_rows($resultado_usuarios); //Ordenar o resultado $result_usuarios.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; $resultado_usuarios=mysqli_query($conn, $result_usuarios); // Ler e criar o array de dados $dados = array(); while( $row_usuarios =mysqli_fetch_array($resultado_usuarios) ) { $dado = array(); $dado[] = $row_usuarios["dataabertura_os"]; $dado[] = $row_usuarios["dataservico_os"]; $dado[] = $row_usuarios["databusca_os"]; $dado[] = utf8_encode($row_usuarios["comentario_servico"]); $dado[] = utf8_encode($row_usuarios["nome_cliente"]); $dado[] = utf8_encode($row_usuarios["nome_prestador"]); $dado[] = utf8_encode($row_usuarios["descricao_categoria"]); $dado[] = utf8_encode($row_usuarios["id_os"]); $dados[] = $dado; } //Cria o array de informações a serem retornadas para o Javascript $json_data = array( "draw" => intval( $requestData['draw'] ),//para cada requisição é enviado um número como parâmetro "recordsTotal" => intval( $qnt_linhas ), //Quantidade de registros que há no banco de dados "recordsFiltered" => intval( $totalFiltered ), //Total de registros quando houver pesquisa "data" => $dados //Array de dados completo dos dados retornados da tabela ); echo json_encode($json_data); //enviar dados como formato json  
       
      Então para resumir, eu gostaria de saber como coloco um botão para excluir o registro, e um para direcionar o usuário para uma outra página para alterar aquele registro. Também gostaria de saber onde coloco o código para tradução...
      Obrigado!
       
    • By peterstefan
      Olá, estou tentando enviar uma imagem do perfil em jquery para o php para cadastrar no banco.. Quando tento enviar via http ele vai certinho, mais queria sem dar refresh na pagina.... 
      Tenho que fazer alguma coisa no jquery para que  possa enviar o nome da imagem para o php?
       
      Fiz 3 teste de file para receber o nome da imagem e as 3 ta retornando null...


×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.