Error al guardar registro en php, ajax y mysql

Estado
No está abierto para más respuestas.

Paulita

Piedra
Usuario de Piedra
Mensajes
46
Puntuación de reacción
0
Buenas noches! Estoy intentando guardar un registro utilizando Ajax, php y mysql pero no me funciona, no sé qué pasa he probado y nada, solo me sale el alert con el mensaje “Error general del sistema, intente más tarde”. Me gustaría que me ayudaran para ver cuál es el error que tengo
este es mi formulario de agregar habitantes:
agregarHabitantes.php
Código:
<form action="agregarDatosHab.php" method="post" id="agregarHab" name="agregarHab">
		<fieldset>
		<legend>Datos del Habitante</legend>
			
			<label for="cedula">Cédula:</label>
			<input type="text" name="cedula" id="cedula">
			<br/>
			<label for="nombre">Nombres:</label>
			<input type="text" name="nombre" id="nombre">
			<br/>
			<label for="tiempo">Tiempo:</label>
			<input type="text" name="tiempo" id="tiempo">
			<br/>
			<label for="estado">Estado Civil:</label>
			<select name="estado" id="estado">
				<option value="" selected="selected">- Seleccione -</option>
				<option value="casado(a)">Casado(a)</option>
			  	<option value="soltero(a)">Soltero(a)</option>
			  	<option value="viudo(a)">Viudo(a)</option>
			</select>
			<br/>
			<label for="fecha">Fecha de Nacimiento:</label>
			<input type="date" name="fecha" id="fecha">
			<br/>
			<label for="genero">Género:</label>
			<select name="genero" id="genero">
				<option value="" selected="selected">- Seleccione -</option>
				<option value="F">Femenino</option>
				<option value="M">Masculino</option>';
			</select>
					<br/>
					<label for="profesion">Profesión:</label>
					<input type="text" name="profesion" id="profesion">
					<br/>
					<label for="direccion">Dirección:</label>
					<textarea name="direccion" id="direccion" cols="30" rows="5"></textarea>
			<br/>
		<input type="submit" name="agregarH" id="agregarH" value="Agregar">
		</fieldset>
	
	</form>	
<div id="mensaje"></div>//para que salga el mensaje, en el caso que si se ha insertado o no

este es el código que estoy utilizando para validar y procesar el formulario:
formValidar.js
Código:
$(document).ready(function(){
	//se define un método para comparar que el select tenga un texto distinto a -Seleccione-
	$.validator.addMethod("notEquals",function(value, element,param){
			return value!=param;
		}, "Debe de Seleccionar un elemento de la lista");

	$("#agregarHab").validate({
		rules: {
			cedula:{ required: true, minlength: 8, maxlength:11},
			nombre:{ required:true},
			tiempo:{required:true, minlength:1, maxlength:2},
			profesion:{required:true},
			direccion:{required:true}, 
			genero:{required:true, notEquals:"- Seleccione -"},
			estado:{required:true,notEquals:"- Seleccione -"},
			fecha:{required: false, date: true}
		},
		messages:{
			cedula: {required:"El campo es requerido", minlength:"La longitud mínima es de 8 dígitos", maxlength:"La longitud máxima es de 11 dígitos"},
			nombre: "El campo es requerido",
			tiempo:{required:"El campo es requerido", minlength:"La longitud mínima es de 1 dígitos", maxlength:"La longitud máxima es de 2 dígitos"},
			profesion: "El campo es requerido",
			direccion: "El campo es requerido",
			genero:"Debe de Seleccionar una opción de la lista",
			estado:"Debe de Seleccionar una opción de la lista",
			fecha:"Debe de Seleccionar una fecha"
		},
		submitHandler: function(){
			var formulario= $('#agregarHab').serialize();
			$.ajax({
				type: 'POST',
				dataType:'json',
				url:'include/agregarDatosHab.php',
				data: formulario,
				success: function(repsuesta){
					$('#mensaje').html(json.html);
				},
			error:function(){
							alert("Error general del sistema, intente más tarde");
						}
			});
		}
	});

este es el archivo de php: agregarDatosHab.php
Código:
<?php
	
	foreach ($_POST as $ind => $valor) {
		$$ind=$valor;
	}

	require_once('conexion.php');
	$verificar="SELECT * FROM censo WHERE Cedula='".$cedula."'";
	$resultado=$conexion->query($verificar) or die("Fallo la consulta");
	$respuesta=new addClass();

	if($resultado->num_rows==0){
	$consulta="INSERT INTO censo (Cedula, Nombre, Tiempo, Direccion, EstadoCivil, FechadeNacimiento, Profesion, Sexo)
				VALUES('$cedula', '$nombre', '$tiempo', '$direccion', '$estado', '$fecha', '$profesion', '$genero')";
	$conexion->query($consulta) or die('Error! Fallo la Consulta');
	$respuesta->mensaje="Se ha guardado el registro";
	$conexion->close();

	}
	else{
		$respuesta->mensaje="No se ha guardado el registro";
		$conexion->close();
	}

	echo json_encode($respuesta);
?>
 
Mensajes
3
Puntuación de reacción
0
Cedula='".$cedula."'";
VALUES('$cedula'

ve la diferencia, para concatenar creo que debes poner ".
 

Paulita

Piedra
Usuario de Piedra
Mensajes
46
Puntuación de reacción
0
Cedula='".$cedula."'";
VALUES('$cedula'

ve la diferencia, para concatenar creo que debes poner ".

Hola diegomvsc2 estuve probando lo que me dices pero igual no me funciona:(

- - - Actualización- - -

Ya lo resolvi, el problema era que no estaba utilizando la variable que habia definido, lo tenia así:

Código:
success: function(repsuesta){
$('#mensaje').html(json.html);
},

y era así:

Código:
success: function(repsuesta){
$('#mensaje').html(repsuesta.html);
},
también en la url el include no iba porque estaba en un mismo nivel.
 
Estado
No está abierto para más respuestas.
Arriba