Hola, me gustaria que me ayuden en algo que me sucedio esta tarde, estaba trabajando con mi proyecto basado en una reserva de horas mediante PHP y Ajax, la verdad es que estaba configurando FullCalendar que es el que utilizo para mostrar las horas reservadas, entonces luego de haber hecho aquello entre a la pagina donde hago las reservas y al reservar simplemente no pasa nada, no se ejecuta la funcion javascript que esta configurada para que se realice al momento del submit.
No tengo idea de que habra pasado, cabe recalcar que tengo avanzado en proyecto casi un 60% y pues ya habia probado en dias anteriores aquella función de reservar y de buscar una reserva y todo funcionaba a la perfeccion, no entiendo que pasa, utilizo AJAX por cierto para realizar la consulta y añadir la reserva.
No se si quizas sea el servidor local, la base de datos, etc, quisiera saber si a alguien alguna vez le paso esto, la verdad es que estoy algo desesperado porque he revisado todo el código y al parecer no tengo nada extraño, la base de datos también la revise y parece que todo esta perfecto.
Adjuntare el codigo javascript y el PHP para que puedan observar y tal vez ayudarme si encuentran algun error.
AJAX.JS Código PHP:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function consultar(){
//Recogemos los valores introducimos en los campos de texto
nombre = document.consulta.nombres.value;
correo = document.consulta.correo.value;
//Aquí será donde se mostrará el resultado
divResultado = document.getElementById('resultado');
//instanciamos el objetoAjax
ajax = objetoAjax();
//Abrimos una conexión AJAX pasando como parámetros el método de envío, y el archivo que realizará las operaciones deseadas
ajax.open("POST", "buscar_reserva.php", true);
//cuando el objeto XMLHttpRequest cambia de estado, la función se inicia
ajax.onreadystatechange = function() {
//Cuando se completa la petición, mostrará los resultados
if (ajax.readyState == 4){
//El método responseText() contiene el texto de nuestro 'consultar.php'. Por ejemplo, cualquier texto que mostremos por un 'echo'
texto = (ajax.responseText);
//mostrar resultados en esta capa
divResultado.innerHTML = texto;
}
}
//Llamamos al método setRequestHeader indicando que los datos a enviarse están codificados como un formulario.
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
//enviamos las variables a 'enviar.php'
ajax.send("&nombre="+nombre+"&correo="+correo)
}
BUSCAR_RESERVA.PHP Código PHP:
<?php
setlocale(LC_ALL,"es_ES@euro","es_ES","esp"); // LC_TIME
?><?php
session_start();
require ('/config.php');
$link = mysqli_connect("$hotsdb","$usuariodb","$clavedb") or die(mysqli_error());
mysqli_select_db( $link, 'calendario');
$link->query("SET NAMES utf8");
$nombre = mysqli_real_escape_string($link,$_POST['nombre']);
$correo = mysqli_real_escape_string($link,$_POST['correo']);
if ($nombre == null){
echo "INGRESE EL NOMBRE CON EL QUE RESERVASTE";
} else{
if ($correo == null){ echo "INGRESE EL CORREO CON EL QUE RESERVASTE";
}else{
$consulta = "SELECT * FROM calendar WHERE nombre LIKE '".$nombre."%' AND correo LIKE '".$correo."%' ";
$resultado = mysqli_query ($link, $consulta) or die (mysqli_error());
if (mysqli_num_rows($resultado) == 0){
echo "LOS DATOS QUE INGRESASTE NO COINCIDEN CON NINGUNA RESERVA HECHA";
}else{
while($row = mysqli_fetch_array($resultado)){
echo utf8_encode("<p> // ".ucwords(strftime("%A %d ", strtotime($row['start'])))." de ".ucwords(strftime("%B ", strtotime($row['start'])))." desde las ".ucwords(strftime("%H:%M", strtotime($row['start'])))." hasta las ".ucwords(strftime("%H:%M", strtotime($row['end'])))." ".utf8_decode($row['nombre'])." </p> \n");
}
mysqli_close($link); } }
}
?>
Adjunto tambien la interfaz donde ingreso los datos de busqueda, no he configurado la apariencia aun, pero aquello no importa.
CONSULTAR_RESERVA.PHP Código HTML:
<!doctype html>
<html>
<head>
<script type="text/javascript" src="ajax2.js"></script>
<link rel="shortcut icon" href="images/favicon_atrako.png">
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Consultar reservación - Atrako Records</title>
</head>
<p>Buscar reserva</p>
<form name="consulta" action="" onsubmit="consultar();return false">
<label>
Buscar <input type="text" name="nombre" />
<input id="txt" type="text" name="correo" />
<input id="btn" type="submit" value="Consultar" />
</label>
</form>
<div id="resultado"></div>
<body>
</body>
</html>
Al momento de realizar el submit en el form y donde se supone deberia ejecutarse la funcion consultar() que se encuentra en el archivo ajax.js, no pasa nada, solo refresca la pagina y resetea los textbox, como si no encontrara aquella funcion.
La barra de direcciones queda asi.
Espero puedan ayudarme guiandome para encontrar la solucion.
Utilizo WampServer Version 3.0.0 64bit, por si lo necesitan saber.
Saludos y muchas gracias!!