Foros del Web » Programando para Internet » PHP »

Problema base de datos PHP y Ajax

Estas en el tema de Problema base de datos PHP y Ajax en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/04/2016, 19:07
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Pregunta Problema base de datos PHP y Ajax

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!!
  #2 (permalink)  
Antiguo 23/04/2016, 21:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 31
Respuesta: Problema base de datos PHP y Ajax

no soy bueno con ajax solo básico pero veo que

Código:
nombre = document.consulta.nombres.value;
no coincide con

Código:
input type="text" name="nombre"
ademas no creo q sea necesario esto & en &nombre solo en las siguientes
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #3 (permalink)  
Antiguo 23/04/2016, 22:11
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Problema base de datos PHP y Ajax

Si, yo tambien me fije luego de postear, aun sigo buscando el error porque modifique ambas cosas que me mencionas hace un rato y nada, aun sigue sin hacer nada.

Gracias por responder.
  #4 (permalink)  
Antiguo 23/04/2016, 23:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 31
Respuesta: Problema base de datos PHP y Ajax

y esa primera linea en el AJAX.JS esta ahi en el .js porque si esta ahi no funcionara
y ya probaste el php con el formulario html si te da resultado
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #5 (permalink)  
Antiguo 23/04/2016, 23:34
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Problema base de datos PHP y Ajax

Te refieres a la linea
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
?

Sie te refieres a esa, ya la quite por las dudas, pero antes si me funcionaba con aquella linea, de repente ya no funciono.

Probe directamente desde el form al php, si me funciona, me muestra los mensajes y todo.

Sigo buscando en la web y hago modificaciones a ver si sirven y nada, aun no se que pasa, estoy volviendome loco.

Gracias por responder nuevamente.

Saludos
  #6 (permalink)  
Antiguo 23/04/2016, 23:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 31
Respuesta: Problema base de datos PHP y Ajax

pero yo probé tu código ajax sin: <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
y en el: buscar_reserva.php
use esto y todo funciona bien:
Código PHP:
<?php 
print_r
($_POST);
?>
en el js dale la ruta completa del buscar_reserva.php

osea contodo y http://etc
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #7 (permalink)  
Antiguo 24/04/2016, 00:03
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Problema base de datos PHP y Ajax

Lo intente, nada aun. Sabes es que es raro, porque si me funcionaba y ahora nada.
Me sigue saliendo al hacer click en el submit esto:

http://localhost/consultar_reserva.php?nombre=&correo=

Cuando en realidad la funcion de onsubmit es un POST, no un GET que parece en lo que me muestra al hacer click en el submit.

He dejado todo el codigo para ver si alguien se fija en algo, ya que yo lo he revisado por completo y no encuentro nada raro.

Hace unos dias me funcionaba re bien, todo andaba perfecto, de repente al entrar hoy despues de tomarme unos dias, ya no ejecutaba el js, para nada, es como si no lo encuentra en la carpeta al momento de llamarlo e incluirlo en el PHP.

Saludos y gracias por responder de nuevo, de veras gracias.
  #8 (permalink)  
Antiguo 24/04/2016, 00:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 31
Respuesta: Problema base de datos PHP y Ajax

si dices que php funciona bien tu ajax también porque ya lo probé y funciona bien
si quieres te paso una url para q lo veas en funcionamiento.

solo una cosa mas si tienes otro explorador web en tu pc intentarlo o si no borra todo el historial de tu explore web
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #9 (permalink)  
Antiguo 24/04/2016, 00:27
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Problema base de datos PHP y Ajax

Lo he conseguido, modificando el codigo del JS con algo mas simple que encontre en la web.

Código PHP:
function creaObjetoAjax () { //Mayoría de navegadores
     
var obj;
     if (
window.XMLHttpRequest) {
        
obj=new XMLHttpRequest();
        }
     else { 
//para IE 5 y IE 6
        
obj=new ActiveXObject(Microsoft.XMLHTTP);
        }
     return 
obj;
     }
function 
consultar() {
   
//Recoger datos del formulario:
   
nombre=document.consulta.nombre.value//Email escrito por el usuario
   
correo=document.consulta.correo.value//Contraseña primera
   //datos para el envio por POST:
   
misdatos="nombre="+nombre+"&correo="+correo;
   
//Objeto XMLHttpRequest creado por la función.
   
objetoAjax=creaObjetoAjax();
   
//Preparar el envio  con Open
   
objetoAjax.open("POST","buscar_reserva.php",true);
   
//Enviar cabeceras para que acepte POST:
   
objetoAjax.setRequestHeader("Content-type""application/x-www-form-urlencoded"true);
   
objetoAjax.setRequestHeader("Content-length"misdatos.length);
   
objetoAjax.setRequestHeader("Connection""close");
   
objetoAjax.onreadystatechange=recogeDatos;
   
objetoAjax.send(misdatos); //pasar datos como parámetro
   
}
   function 
recogeDatos() {
    if (
objetoAjax.readyState==&& objetoAjax.status==200) {
        
miTexto=objetoAjax.responseText;
        
document.getElementById("resultado").innerHTML=miTexto;
        }
    } 
Me gustaria tu opinion acerca del mismo, no quisiera que luego de subirlo a la web no ande o algo parecido, lo digo por la funcion creaObjetoAjax.

Me surge una duda porque pruebo el codigo anterior que tenia y no funciona para nada, lo probe en Opera, Firefox y nada, en chrome aun no me anda ninguno de los dos pero quizas sea cuestion de limpiar el cache e historial como dices.

Me gustaria ver la url que mencionas, si puedes posteala aqui.

Saludos y gracias de nuevo, estare probando añadiendo un loading al ajax a ver si sigue andando, aunque lo logico seria que si funcione pero bueno, a probar!

Muchas gracias de verdad!
  #10 (permalink)  
Antiguo 24/04/2016, 00:37
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 31
Respuesta: Problema base de datos PHP y Ajax

yo no soy bueno con ajax pero yo le hice un invoce a un familiar con un codigo ajax como el que mostraste al principio solo tienes unas pequeñas diferencias y por eso decidí ayudarte.

tambien puedes ver el codigo fuente de esa pagina

y eso de que te sale como si fuera por $_GET sucede cuando el ajax tiene error o no encuentra el file php o el codigo php tiene un error muy grande
__________________
╬-----╬
║☺₧☻║
╬-----╬

Última edición por thezzin; 24/04/2016 a las 09:58
  #11 (permalink)  
Antiguo 24/04/2016, 10:49
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Problema base de datos PHP y Ajax

Parece ser que con el código que postee en una respuesta anterior me ha funcionado, aun no entiendo el porque.

Si alguien se pasa por aca y sabe algo me gustaria que pueda escribirlo dando su opinion para no tener problemas futuros.

Revise a url y si, tal como dices, funciona a la perfección, repito que hace días también me funcionaba en el localhost es por eso que estaba desesperado en hallar la solución.

Gracias thezzin.

Saludos

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:46.