Erro ao cadastrar no banco usando $.ajax (success)

0 respostas
juliomendes90

Pessoal,

estou com um problema em uma aplicação de teste que estou fazendo para meu TCC.
Seguinte.. quero cadastrar dados no banco, mas ao inserir os dados no form pela primeira vez, os mesmos são cadastrados no sistemas, mas o ALERT do JAVASCRIPT não é exibido. E ao tentar fazer um novo cadastro no banco com dados diferentes da primeira inserção, ocorre um bug, onde os dados da primeira inserção são salvos no banco novamente (eles ficam na sessão). Eu só consigo salvar novos dados no banco limpando o cache do navegador (CTRL + F5).

Segue abaixo meus códigos:

- página index.html

<!DOCTYPE html>
<!--
    Copyright (c) 2012-2014 Adobe Systems Incorporated. All rights reserved.

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="msapplication-tap-highlight" content="no" />
        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
		<link rel="stylesheet" href="css/jquery.mobile-1.1.2.min.css" />
		<script src="js/jquery-1.7.2.min.js"></script>
		<script src="js/jquery.mobile-1.1.2.min.js"></script>
        <title>Cadastro</title>
    </head>
    <body>
		<form id="formCliente">
			<div id="control">
				<div class="control-group">
					<div class="cad-titulo">
						<span>CADASTRO DE CLIENTES</span>
					</div>
				</div>			
				<div class="control-group">
					<label class="control-label">
						Nome
					</label>
					<div class="controls">
						<input type="text" autofocus name="nome" id="nome" class="campos">
					</div>
				</div>
				<div class="control-group">
					<label class="control-label">
						CPF
					</label>
					<div class="controls">
						<input type="text" placeholder="Apenas números" name="cpf" id="cpf" class="campos">
					</div>
				</div>
				<div class="control-group">
					<label class="control-label">
						RG
					</label>
					<div class="controls">
						<input type="text" name="rg" id="rg" class="campos">
					</div>
				</div>
				<div class="control-group">
					<label class="control-label">
						Tel
					</label>
					<div class="controls">
						<input type="text" placeholder="([telefone removido]" name="tel" id="tel" class="campos">
					</div>
				</div>
				<div class="control-group">
					<label class="control-label">
						Email
					</label>
					<div class="controls">
						<input type="email" name="email" id="email" class="campos">
					</div>
				</div>
				<div class="control-group">
					<button onclick="salvar()" type="submit" class="btn btn-sucess"><span>SALVAR</span>
				</div>
				
				</div>
    </body>
</html>

<script>

	function salvar(){

		// Recupera as informações dos campos através do id formCliente
		// Usa-se sirialize para jogar todas as informações dos campos no id
		var formula = $('#formCliente').serialize();

		$.ajax({

			type:'POST',
			data: formula,
			url: 'http://localhost/bkp/www/cadastro.php',
			success: function(data) {
				if((data == '') || (data == 0)) {
					alert('Ocorreu um erro na gravação no banco de dados');
					window.location = ""; // para dar um refresh
				}
				if(data == 1) {
					alert('Cadastro salvo no banco de dados');
					window.location = ""; // para dar um refresh
				}
			}
		});
		

	}

</script>
- cadastro.php
<?php
//include = ('conexao.php');
	error_reporting(0); //oculta o erro do php
	// Informando o host, usuário e senha do banco
	$con = mysql_connect("localhost","root","");
	
	// Informando o banco a ser conectado
	mysql_select_db('videoaulapp',$con);

	// Recuperando os campos da página index.html
	$nome = mysql_real_escape_string($_REQUEST['nome']);
	$cpf = mysql_real_escape_string($_REQUEST['cpf']);
	$rg = mysql_real_escape_string($_REQUEST['rg']);
	$tel = mysql_real_escape_string($_REQUEST['tel']);
	$email = mysql_real_escape_string($_REQUEST['email']);

	$sql = "INSERT INTO cliente(nome,cpf,rg,tel,email) VALUES('$nome','$cpf','$rg','$tel','$email')";
	$res = mysql_query($sql);
	
	if($res == true) {
		$cadastro = "1";
	} else {
		$cadastro = "0";
	}

	// Devolvendo as informações para a aplicação
	echo(json_encode($cadastro));
	
?>

Alguém pode me ajudar, por favor?

Criado 16 de setembro de 2014
Respostas 0
Participantes 1