Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2013, 19:31
gustavocaso
 
Fecha de Ingreso: julio-2013
Ubicación: Madrid
Mensajes: 13
Antigüedad: 11 años, 4 meses
Puntos: 0
No consigo que con la funcion de ajax me cambie el src

Buenas intento que me código cambie la src de una imagen pero que antes haga una consulta con $.post a una base de datos donde coge el valor del estado de la mesa que es TINYINT y si es 0(ocupada) lo cambia 1(disponible) y si es 1 lo cambia a 0, y devuelve el estado final que recoge la función $.post y en función de la condición de si esta disponible le cambia la src y si esta ocupada le pone otra src.

este es mi código de html:
Código HTML:
Ver original
  1. <!doctype html>
  2. <html lang="en">
  3.     <meta charset="UTF-8">
  4.     <title>Reservas</title>
  5. </head>
  6.  
  7.     <h1>Reservar</h1>
  8.    
  9.  
  10.    
  11.        
  12.         <img id="mesa1" src="../img/seats_blue.png" alt="mesa" onclick="reservar_mesa($(this),$(this).attr('id'))">
  13.        
  14.  
  15.     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
  16.  
  17.     <script>
  18.    
  19.     function reservar_mesa(img,id){
  20.  
  21.         // recibe dos variables el objeto en si y el atributo id que sera el que enviemos por post
  22.        
  23.         var datos = "id_mesa="+id;
  24.  
  25.         var url = "../reservar_mesa.php";
  26.         $.post(url, datos, function(estado){
  27.            
  28.             if(estado === "ocupada"){ // si devuelve ocupada cambiamos la imagen a roja
  29.                 img.attr('src', '../img/seats_red.png');
  30.             } else{               //si devuelve disponible cambiamos la imagen a azul
  31.                 img.attr('src', '../img/seats_blue.png');
  32.             }
  33.         });
  34.     }
  35.  
  36.     </script>
  37. </html>


Y este es mi código de php:
Código PHP:
Ver original
  1. <?php
  2. require_once "inc/config.inc.php";
  3.  
  4.  
  5. if($_REQUEST['id_mesa']){            //recibo la variable a traves de request
  6.     $id_mesa = $_REQUEST['id_mesa'];
  7.  
  8.     $mysqli = new mysqli($config['DB_HOST'], $config['DB_USER'], $config['DB_PASS'], $config['DB']);  // me conecto a la base de datos
  9.  
  10.     if (mysqli_connect_errno()) {   //compruebo que no haya errores en la conexion.
  11.         printf("Conexion fallida: %s\n", mysqli_connect_error());
  12.         exit();
  13.     }
  14.  
  15.     $sql = "SELECT estado FROM mesas  WHERE id_mesa = '$id_mesa'";  // selecciono el estado de la mesa clickeada
  16.  
  17.     if ($resultado = $mysqli -> query($sql)) {  // condicion para comprobar que la consulta se este dando
  18.  
  19.             $fila = $resultado -> fetch_assoc();  // guardo en unarray los resultados
  20.             $estado  =  $fila['estado'];  // guardo el estado de la mesa
  21.  
  22.            
  23.  
  24.             if($estado){  // si el estado es true o 1 lo cambio a 0 y devuelvo el estado final
  25.                 $consulta = $mysqli -> query ("UPDATE  mesas SET estado = '0' WHERE id_mesa = '$id_mesa'");
  26.                
  27.                 $estado_final = "ocupada";
  28.             } else {  // si el estado es false o 0 lo cambio a 1 y devuelvo el estado final
  29.                 $consulta = $mysqli -> query ("UPDATE  mesas SET estado = '1' WHERE id_mesa = '$id_mesa'");
  30.            
  31.                 $estado_final = "disponible";
  32.             }
  33.                 echo $estado_final; // devuelvo el estado final
  34.  
  35.         }   else{
  36.             echo "Fallo en la primera consulta";
  37.         }
  38.  
  39.        
  40.     } else{
  41.         echo "No has seleccionado mesa";
  42.     }
  43.  
  44.  ?>

Cualquier ayuda sera bien recibida.