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<!doctype html>
<img id="mesa1" src="../img/seats_blue.png" alt="mesa" onclick="reservar_mesa($(this),$(this).attr('id'))">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
function reservar_mesa(img,id){
// recibe dos variables el objeto en si y el atributo id que sera el que enviemos por post
var datos = "id_mesa="+id;
var url = "../reservar_mesa.php";
$.post(url, datos, function(estado){
if(estado === "ocupada"){ // si devuelve ocupada cambiamos la imagen a roja
img.attr('src', '../img/seats_red.png');
} else{ //si devuelve disponible cambiamos la imagen a azul
img.attr('src', '../img/seats_blue.png');
}
});
}
Y este es mi código de php:
Código PHP:
Ver original<?php
require_once "inc/config.inc.php";
if($_REQUEST['id_mesa']){ //recibo la variable a traves de request
$id_mesa = $_REQUEST['id_mesa'];
$mysqli = new mysqli($config['DB_HOST'], $config['DB_USER'], $config['DB_PASS'], $config['DB']); // me conecto a la base de datos
}
$sql = "SELECT estado FROM mesas WHERE id_mesa = '$id_mesa'"; // selecciono el estado de la mesa clickeada
if ($resultado = $mysqli -> query($sql)) { // condicion para comprobar que la consulta se este dando
$fila = $resultado -> fetch_assoc(); // guardo en unarray los resultados
$estado = $fila['estado']; // guardo el estado de la mesa
if($estado){ // si el estado es true o 1 lo cambio a 0 y devuelvo el estado final
$consulta = $mysqli -> query ("UPDATE mesas SET estado = '0' WHERE id_mesa = '$id_mesa'");
$estado_final = "ocupada";
} else { // si el estado es false o 0 lo cambio a 1 y devuelvo el estado final
$consulta = $mysqli -> query ("UPDATE mesas SET estado = '1' WHERE id_mesa = '$id_mesa'");
$estado_final = "disponible";
}
echo $estado_final; // devuelvo el estado final
} else{
echo "Fallo en la primera consulta";
}
} else{
echo "No has seleccionado mesa";
}
?>
Cualquier ayuda sera bien recibida.