PHP - Como pasar valor con input button

 
Vista:
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 02/03/2019 12:11:24
Hola a todos, quisiera por favor me ayuden a encontrar la forma de pasar datos sin utilizar submit es decir con input type = button, con la finalidad de que no se pierda su atributo active que permite mantener el botón activo después de hacer click .

1
2
3
4
5
<form method = "post" action="mesas.php" name="formmesa1" >
 
<input type="button" class="active" value="Mesa1" name="mesas"></input>
 
</form>

o quizá si no es posible lo que pido, como podría lograr que un input submit se mantenga activo después de hacer click. gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (150 intervenciones) el 02/03/2019 19:24:29
Hola, deberias explicar mejor la finalidad de tu proyecto,

No hay ningun submit en tu codigo, (ni otro input) solo un boton, que contiene Mesa1 como valor y mesas como nombre,

aparte de eso, active simplemente esta como clase, es decir su stylo y nada mas.

normalmente para trabajar sin recargar la pagina, que al parecer lo que deseas hacer se trabaja con ajax.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script type="text/javascript">
$(document).ready(function() {
  $("#tu_submit_name").click(function(event) {
    // para que deje de refreshar la pagina
    event.preventDefault();
      $.ajax({
        url:"php/tu_pagina_procesar.php", //mesas.php
        method:"POST", //envias los datos a tu_pagina_procesar.php y los recibes por $_POST
        data:{nombre_variable: valor_variable, otro_nombre_variable: otro_valor_variable},
        success:function(data)
        {
          //escribes la respuesta de la pagina dentro de un div por ejemplo
          $('#nombre_elemento_div').html(data);
        }
      });
  });
});
</script>
 
<form method="post" action="" >
 
<!-- <input type="button" class="active" value="Mesa1" name="mesas"></input> -->
 
<input type="submit" id="tu_submit_name" name="submit" value="Mesa1"  >
 
</form>
 
<!-- aqui la respuesta de tu php, armas alla una tabla html o un mensaje etc etc etc  -->
 
<div id="nombre_elemento_div"></div>

1
2
3
palabras claves para que busques en google:
 
ajax php submit form without refresh

ese codigo es solo un ejemplo (hay miles de maneras de hacerlo, con o sin form), la cuestion como te decia es que expliques mejor lo que deseas y sobre todo escribas tu codigo y erroes que sin eso no se podria ayudarte bien.

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 03/03/2019 07:13:11
exacto tengo un solo botón bueno para el ejemplo , lo que intento hacer es un modulo de mesas para una fonda y este botón vendría a ser una mesa de las tantas que podría haber. requiero que al presionar este botón"mesa" se pueda obtener un valor y almacenarlo en una variable php de la forma como lo hace un form pasando los parámetros con post y recuperaros luego, hasta ahí todo bien, el problema nace de la necesidad de que este mismo botón "mesa" una vez presionado se mantenga activado ya sea con active,focus o hover y que conserve el estado después de redirigir la pagina. Con el input type button puedo mantener este botón activo una vez echo clic, cosa que no puedo hacer con un imput type submit; pero si utilizo input button no puedo enviar pasar parámetros a menos que utilice ajax. es decir el problema esta en que o bien paso los parámetros del input button con ajax ya que sin ajax no pasan, o tanbien quizá habría la posibilidad de dar la apariencia de activo al input submit utilizando CSS para que al recargar la pagina le ponga el foco al botón y asi pasar sin ajax. espero me entiendas lo que trato de explicar gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (150 intervenciones) el 03/03/2019 20:27:30
Hola, lo que tu deseas es:

tienes 5 mesas: mesa1, mesa2, mesa3, mesa4, mesa5, las mesas tendran un estado de libre (verde) y ocupada (rojo), las mesas son botones.

tu objetivo es: si das click sobre una mesa libre, osea de color verde, este pase a estado ocupado y seria de color rojo?

en que momento dejara de estar ocupada? es decir como le cambiaras al estado libre y color verde? nuevamente dandole click sobre rojo? desde donde?

que se recargue la pagina o que no se recargue, ese no es el problema, la cuestion es que deseas hacer, explica mejor tu proyecto o escribe tu codigo con los errores que tengas.

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 04/03/2019 02:48:06
hola,

si algo muy similar a lo que dices: todos los botones "mesa" estarían controlados por
dos botones un botón "canbiar estado" canbiaria el estado de cada mesa mediante un menú radio buton que daría a elegir entre dos o mas opciones (ocupado, disponible, etc) y cada estado mostraría un color diferente; una mesa dejaría de estar ocupada una vez el camarero le haya designado esa condición a través del menú radio button que ofrece este botón, cambiando así tanbien al color predeterminado para este estado .El otro botón "agregar orden"seria para agregar la orden a cada mesa a través de menús y su estado (activado o desactivado) estaría condicionado al estado en que se encuentra la mesa es decir si la mesa de donde se llamo esta disponible este botón permanecería inactivo pero si la mesa tiene la condición de ocupada este botón se activaría automáticamente. tanbien cada boton "mesa" una vez seleccionado por un clic mostraría un resaltado ya sea active, focus o hover que se desactivaría al darle click en otro botón mesa. esto seria todo el funcionamiento.

tengo la idea de utilizar las características que tiene el input type button ya que al tener varios botones agrupados (botones mesa) se resalta siempre el boton en el cual se hizo click y lo pricipal se mantiene resaltado hasta darl click en otro botón.

tengo este código: donde logro pasar parámetros de un input button utilizando ajax estos parámetros me servirían para registrar en BD
información sobre las ordenes pero tanbien me sirven para condicionar el comportamiento del botón "agregar orden" que su estado activo esta condicionado al estado del boton"mesa" desde donde se lo llamo:


mesas.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php echo var_dump($_POST);
 
	$mesas = $_POST['mesas'];
 
	echo $mesas;
?>
 
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
 
 
	<script>
	$(document).on('ready',function(){
 
	  $('#btn-ingresar').click(function(){
		var url = "mesas.php";
 
		$.ajax({
		   type: "POST",
		   url: url,
		   data: $("#formulario").serialize(),
		   success: function(data)
		   {
			 $('#resp').html(data);
		   }
		 });
	  });
	});
	</script>
 
<div id="fondmesa1">
 
			<form method = "post" action="" id="formulario">
			<input type="hidden" name="mesas" value="mesa1" />
			<input type="button" id="btn-ingresar" value="mesa1" />
 
			</form>
			<div id="resp"></div>
	        </div>


el problema es que este código de ajax al ejecutarlo me arroja los parámetros pasados en un div "resp" pero me arroja el resultado en una pantalla duplicada. no se a que se debe esto, cabe resaltar que en el codigo ajax estoy redirecionando a la misma pagina donde esta el form .que es donde necesito el resultado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 04/03/2019 06:05:24
Cuando en el ajax direccióno a otra página el resultado se muestra bien, pero cuando direccióno a la misma página al momento de mostrar el resultado me duplica toda la pantalla de la página actual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como pasar valor con input button

Publicado por italo_pm (150 intervenciones) el 04/03/2019 10:22:58
hola, pues de seguro con solo ese cosigo no se te puede ayudar mucho, en la respuesta ajax se deja solo html ya que todo ira sobre la pagina llamante en ese div, por otra parte sobre la parte css osea colores segun el estado mesa etc etc pues basta que intercepta el estado y lo compares con los de tu db y vas creando las clases (que luego creas en css) , de esa manera segun el estado se va colorando....

lo ultimo que decias era que deseabas dejar evidenciado el ultimo boton clikado? pero si el boton ya cambio de color segun su estado para que te serviria eso? es decir, si ya cambio de color de libre a ocupado (de verde a rojo) que te motiva a agregarle otra cosa? en fin eso lo dejaria por ultimo.

por otra parte podras explixar con texto, pero si no agregas codigo es complicado ayudarte, incluso puedes agregar imagenes de lo que deseas obtener.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 04/03/2019 13:12:55
hola, el lió que tengo es con este código nada mas y que de a pocos voy solucionando eso de los colores, los estados y la inserción en la base de datos no hay problema,

me doy cuenta que es mejor en ajax re direccionar el resultado a otra pagina y no a la misma de esa forma el metodo html.() no me duplica la parte "html".

ahora el problema que se me presenta es cuando tengo mas de un boton "mesa" estuve probando y la primera vez que doy click en un boton "mesa" el codigo funciona bien pero cuando doy click en otra mesa no se ejecuta nada y la pagina se mantiene con el resultado de la primera mesa que se hizo click; es decir al presionar otro bonton "mesa" no me funciona el código solo con el primer boton funciona.

de esta forma estoy tratando de ordenar los botones para mas mesas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div id="fondomesas">
 
    <div id="fondmesa1">
 
        <form method = "post" action="" id="formulario">
            <input type="hidden" name="mesas" value="mesa1" />
            <input type="button" id="btn-ingresar" value="mesa1" />
 
        </form>
        <div id="resp"></div>
    </div>
 
    <div id="fondmesa2">
 
        <form method = "post" action="" id="formulario">
            <input type="hidden" name="mesas" value="mesa2" />
            <input type="button" id="btn-ingresar" value="mesa2" />
 
            </form>
            <div id="resp"></div>
        </div>
 
    </div>

de esta forma se ve el tablero de mesas:


Sin-titulo

en ese marco tendria q acomodar todas las mesas que se requieren y por el momento solo tengo dos; pero solo la mesa 1 ejecuta el codigo para pasar parametros con el form y ajax
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo (150 intervenciones) el 04/03/2019 17:05:55
Hola, el año pasado un usuario necesitaba algo parecido a tus requerimientos, lo trabaje por clases (en lugar de id) que por cada click que se haga en la casilla, incrementaba en el database y segun el valor cambiaba de color el estado... a manera de curiosidad podrias revisar el tema.

https://www.lawebdelprogramador.com/foros/PHP/1637542-Gestionar-tabla-a-partir-de-BBDD.html#i1638977

como te decia se trabajo por cada click , de cada celda con class="newvalor", se hacia el update al database y si era correcto todo se refreshaba la pagina y se asignaba el color del estado.

te recuerdo que js o jquery o como standard los id son unicos, en tu caso se repite id="formulario", por lo mismo hace solo el primer formularia o seguramente te da error (console errores).

como informacion adicional, en tu ejemplo tienes 2 botones de mesa y boton un de estado, al presionar el boton estado que pasaria?

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 04/03/2019 18:10:45
El botón estado como te explique sirve par cambiar el estado de la mesa ya sea de disponible a ocupada o viceversa al darle click me despliega un menú radio para elegir las opciones del teclado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo (150 intervenciones) el 04/03/2019 21:19:01
Hola, habia entendido que utilizarias un solo boton, que al clickarlo de estado disponible color verde, pasaria a ocupada color rojo.

Ahora, como dices tienes un boton para cambiar de estado, osea ese radiobutton tiene las opciones de disponible y ocupada y cambiaria solo el color del boton de la mesa? osea el boton mesa nunca lo clickas?

graficamente, habia pensado algo asi


mesa_estado

es eso lo que deseas?

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 05/03/2019 16:02:14
se clicka el boton mesa para elegir la mesa que se va a atender; una vez seleccionada la mesa se da click en el boton estado para elegir estado.

el estado tiene que ser elegido manualmente ya que se pueden presentar varias circunstancia que podrían contradecir a la elección automática del sistema
por ejemplo:

- no siempre cuando se termina de comer y se paga la orden el cliente abandona la mesa, muchas veces se toman un tiempo para conversar u otros, o tanbien se tarda en limpiar la mesa y la mesa aun no estaría disponible. debido a esta circunstancia no se puede dar por echo de que la mesa esta disponible una vez pagada la cuenta; por tanto seria conveniente que el limpia mezas o en todo caso el mozo sea el que establezca esta condición de mesa desocupada

- o tanbien no siempre recién cuando se confirma una orden la mesa queda ocupada, hay veces que la mesa se ocupa mucho antes solo que el cliente se demora en hacer la orden o pedido. debido a esas circunstancias no se puede dar por echo que la mesa quede en estado ocupado recién cuando se confirma la orden. en este caso tanbien seria conveniente que el mesero establezca el estado de mesa ocupada.

Algo que tanbien le da importancia a que el estado de las mesas se establezca de forma manual es que tanbien deseo contar con un modulo de mesas pero ya no para el mesero: si no para el anfitrión que va designado a la puerta, y seria el encargado de informarle al cliente que desea ingresar al local; si es que hay mesa disponible o no la hay. siguiendo los mismos ejemplos anteriores:

- que pasaría si el sistema automáticamente establece la condición de disponible a una mesa donde el cliente recién pago la cuenta pero aun no la desocupa; es aquí donde habría un problema ya que el anfitrión al ver el estado de la mesa disponible podría enviar a unos cliente a esa mesa sin haber sido desocupada. y se generaría molestia a los cliente.

- lo mismo para el otro caso donde el anfitrión al ver el estado disponible de una mesa podría enviar clientes hacia ella, pero esta ya podría estar ocupada sino que aun no se realizo la orden por tanto el sistema tiene la mesa como disponible.

valga resaltar que el anfitrión solo tendría el privilegio de observar el estado de las mesas para informar al cliente; mas no podría influir en los estado de cada mesa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 05/03/2019 16:10:55
y con respecto al menú radio button, si eso es lo quiero pero no que se despliegue un menú radio de cada botón mesa sino que sea un unico menú radio para todas las mesas y que emerja del centro de la pantalla; estoy pensado en usar sweet alert para este menu radio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (150 intervenciones) el 07/03/2019 09:57:38
Hola, bueno creo que tus requerimientos son muy personalizados por decirlo de alguna manera, en los aplicativos web de restaurant o hoteles una mesa esta disponible cuando esta disponible, a mi parecer una mesa esta disponible cuando los clientes abandonan la mesa (ya que no los puedes botar), seria otra cosa si agregas el campo limpia o sucia, no te digo que uses un gestional incluso gratuito, por ejemplo debes de agregar lo grupos (si es que aun no los tienes) para dar permisos etc etc etc .... por otra parte, puede ser tambien que debas unir las mesas si es que llega un grupo de gente mayor...

Yo empesaria por lo basico, hacerlo funcionar y luego agregaria las otras opciones que necesitas.

1
con respecto al menú radio button, si eso es lo quiero pero no que se despliegue un menú radio de cada botón mesa sino que sea un unico menú radio para todas las mesas y que emerja del centro de la pantalla; estoy pensado en usar sweet alert para este menu radio

osea tu tienes un unico radio button que cuando lo presiones en:

disponible: aparescan las mesas disponibles?

ocupada: aparescan las mesas ocupadas?

y luego donde cambiarias el estado de las mesas?

podrias hacer una imagen o imagenes con lo que deseas obtener?

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 07/03/2019 21:26:50
gracias por las indicaciones. con respecto al radio button deseo uno para todas las mesas pero que el boton que lo ejecute este disponible solo después de haber clickado en una mesa o boton mesa


Sin-titulo


Sin-titulossxsss
Sin-titulosssa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como pasar valor con input button

Publicado por italo_pm (150 intervenciones) el 08/03/2019 14:32:51
hola, lo que pides se puede hacer con js o jquery, pero no le encuentro la funcionalidad, ya que tranquilamente al clcikar sobre el boton de la mesa, podrias abrir directamente el popup con los dos radio button (tercera imagen) , asi evitarias una accion mas.

haciendo eso de las imagenes, el boton mesa tendra su value, el id y value de mesa de alguna manera será enviado al boton estado, luego el boton estado debera enviarlo al radio button sea form o ajax esos datoa deberan llegar allá.

lo que trato de decir es que no le encuentro funcionalidad al boton estado, ya que clickando sobre mesa se podria abrir directamente el popup con los dos radio de estado.

pregunta: cada vez que se clica en una mesa o cambia el estado, toda esa informacion ira al database, o solo te sirve se forma visual?

bueno, inicia escribiendo el codigo que tengas o los errores encontrados

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 09/03/2019 12:51:02
hola, bueno de esa forma había planeado hacerlo; pero como tu dices se trata tanbien de evitar mas acciones y ahorrar código, pues entonces hagamos lo como tu dices sin botón estado, clickando directo e mesa para elegir estado.


con respecto a tu pregunta de que si al clickar botón mesa la información ira a base de datos ?

si deseo que vaya a base de datos ya que tengo mi tabla mesas donde guardo esa información.


y para empezar código estoy buscando la forma de enviar varios form por ajax ya que como me indicaste para js o jquery los id de formularios son únicos entonces:

- Como envió varios formulario por ajax ? ya que son varios botones mesa y cada uno va dentro de un formulario diferente o Que debería hacerse en estos casos ?

el código lo tengo así :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
 
	<script>
	$(document).on('ready',function(){
 
	  $('#btn-ingresar').click(function(){
		var url = "submit.php";
 
		$.ajax({
		   type: "POST",
		   url: url,
		   data: $("#formulario_mesa1").serialize(),
		   success: function(data)
		   {
			 $('#resp').html(data);
		   }
		 });
	  });
	});
	</script>

y el formulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form method = "post" action="" id="formulario_mesa1">
 
			       <input type="hidden" name="mesas" value="mesa1" />
			       <input type="button" id="btn-ingresar" value="mesa1" />
 
			</form>
 
			<form method = "post" action="" id="formulario_mesa2">
 
			       <input type="hidden" name="mesas" value="mesa2" />
			       <input type="button" id="btn-ingresar" value="mesa2" />
 
			</form>
 
                        <form method = "post" action="" id="formulario_mesa3">
 
			       <input type="hidden" name="mesas" value="mesa3" />
			       <input type="button" id="btn-ingresar" value="mesa3" />
 
			</form>
 
 
			<p id="resp"></p>

podría hacer un ajax diferente para cada formulario; pero me imagino que habrá forma de resumirlo todo en un solo ajax .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 10/03/2019 17:16:36
hola, pues se puede hacer ee varias maneras, una de ellas es hacerlo sin ningun form, por otra parte, si bien ea comodo utilizar la opcion serialize() es preferible (al menos siempre lo sugiero) que sea el programador que datos enviar a otras paginas o mejor dicho al server, tu duda es valida, ya que el id no puede ser unico, pues basta analizar con atencion el problema.

tu tienes N numero se mesas, ese numero lo tienes guardado en el database, (eso espero)

mesa (id, numero o nombre)

entonces si es asi, tendras hacer un select mysql y luego haces un while o foreach o for y por cada ciclo vas creando o un form o un div y dentro del que fuere el input type button, con su id (no puede ser solo numerico) y su name y value (aqui le pasas el echo del id de la mesa del database), pero para que todo esto funcione todos estos elementos form o div deberan de tener algo en comun, (porque los id y name son univocos) para lograr esto deberas utlizar una clase para todos los div (padres) o form ... class="clase_envia" y luego con ayuda de js o jquery aún se podra "navegar" en los distintos campos al interno del div o form

aqui un ejemplo de codigo jquery/ajax que había realizado y se puede adaptar, estudialo.

https://www.lawebdelprogramador.com/foros/PHP/1637542-Gestionar-tabla-a-partir-de-BBDD.html#i1638977

ese ejemplo es para que veas que si se puede realizar y sin necesidad del form (que no siempre es necesario utilizarlo)

a ver si puedes adaptar tu codigo (inténtalo), escribe tus progresos, dudas y/o errores para poder ayudarte.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 11/03/2019 01:19:15
Gracias ya enpeze a estudiarlo cualquier inquietud o problema te lo hago saber. De verdad gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 13/03/2019 06:38:37
Hola, a manera de ejemplo :

en mi caso, cree la tabla mesa con los campos id, nombre (id es int(5) primary key, autoincrement) luego ingrese datos del 1 al 10 (mesa 1, mesa 2 ..... mesa 10)

utilize pdo para interrogar al database, tu adaptalo a lo que utilices (mysqli o mysql)

tu_file.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
//* file config database PDO
include ("./config/config_db_pdo.php");
?>
 
  <!-- sweetalert2 limonte -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.css">
 
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
 
 <!-- sweetalert2 limonte -->
  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.js"></script>
 
 
 
<!-- INICIO -->
<script type="text/javascript">
$(document).ready(function () {
    //* en el evento click, de la class mesa_seleccionada
	$('.mesa_seleccionada').click(function(){
 
    //* declaro variable y memorizo valor del hidden name="mesa" que contiene el id del record de la tabla.
		var id_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='mesa']").val();
 
    //* declaro variable y memorizo id de la mesa clickada
    var id_mesa_boton = ($(this).attr('id'));
 
		//* declaro variable y memorizo el valor de la mesa seleccionada.
    var valor_mesa_nombre = ($(this).val());
 
    console.log("id_mesa_hidden: " + id_mesa_hidden + " - id_mesa_boton: " + id_mesa_boton + " - valor_mesa_nombre: " + valor_mesa_nombre);
 
    //envio todo a sweetalert, sucesivamente se le puede agregar un form para enviar los datos con nuevo estado.
    //en este caso, solo se necesitara enviar el id_mesa_hidden (id del record) y luego el name="estado_mesa" para el update o insert mysql.
    swal({
			title: 'CAMBIA ESTADO',
			html: "Selecciona nuevo ESTADO:" +
        "<br>" +
        "id_mesa_hidden: " + id_mesa_hidden +
        "<br>" +
        " - id_mesa_boton: " + id_mesa_boton +
        "<br>" +
        " - valor_mesa_nombre: " + valor_mesa_nombre +
				"<br>" +
				'<input type="radio" name="estado_mesa" value="libre" class="customSwalBtn">' + 'LIBRE' +
			  "<br>" +
        '<input type="radio" name="estado_mesa" value="ocupada" class="customSwalBtn">' + 'OCUPADA',
			showCancelButton: true,
			showConfirmButton: true
		});
 
    });
 
});
</script>
 
<?php
 
$stmt = $pdo->query('SELECT * FROM mesa');
 
while ($row = $stmt->fetch()) {
 
?>
 
<div class="div_mesa_area">
<!-- campo hidden, recupero el id del record -->
  <input type="hidden" name="mesa" value="<?php echo $row['id'];?>">
  <input type="button" id="mesa_id_<?php echo $row['id'];?>" class="mesa_seleccionada" value="<?php echo $row['nombre'];?>">
</div>
<?php
}
?>

envio todo a sweetalert, sucesivamente se le puede agregar un form (siempre en sweetalert) para enviar los datos con nuevo estado.

en este caso, solo se necesitara enviar el id_mesa_hidden (id del record) y luego el name="estado_mesa" para el update o insert mysql.

aqui seleccionas la mesa 8:

1

aqui se el sweetalert con los datos solo de ese especifico boton y con el id de la tabla mesa .

2

prueba, si tienes errores escribelos.

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 13/03/2019 16:59:43
Ya lo probé y no tengo errores, me parece genial, ahora se podrá adaptar el código del ejemplo anterior de la tabla con colores a este último código ??? Bueno enpesare a a probar como puedo hacerlo. Gracias otra vez por el a porte y cualquier inconveniente te aviso. Espero puedas seguir apoyándome .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 13/03/2019 19:51:49
hola, no entendí tu ultima respuesta,

te refieres a los colores de los botones de las mesas? verde si esta libre y rojo si esta ocupada?

si es eso, primero se debe hacer una query para saber en que estado se encuentran las mesas, luego definir las clases css libre y ocupada y luego agregarlas segun correspondan.

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 14/03/2019 12:43:56
si a eso me refiero, estoy intentando hacerlo; haber como me va
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 16/03/2019 04:49:16
Hola, bueno a manera de ejemplo te dejo el codigo que escribi.

te comparto el codigo de las tablas del database, utilizo pdo para conectar con el database, te dejare el file de la conexion, todo esta en pdo, deberas de controlar la ruta de conexion del file ya que mi ruta es distinta.

codigo para crear las tablas y el insert de datos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
CREATE TABLE `mesa` (
  `id` int(5) PRIMARY KEY AUTO_INCREMENT NOT NULL,
  `nombre` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 
CREATE TABLE `estado_mesa` (
  `id` int(5) PRIMARY KEY AUTO_INCREMENT NOT NULL,
  `nombre` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 
CREATE TABLE `ultimo_estado_mesa` (
  `id` int(5) PRIMARY KEY AUTO_INCREMENT NOT NULL,
  `id_mesa` int(5) NOT NULL,
  `id_estado` int(5) NOT NULL,
  FOREIGN KEY (`id_mesa`) REFERENCES `mesa` (`id`),
  FOREIGN KEY (`id_estado`) REFERENCES `estado_mesa` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 
CREATE TABLE `movimiento_mesas` (
  `id` int(5) PRIMARY KEY AUTO_INCREMENT NOT NULL,
  `fecha` date NOT NULL,
  `hora` time NOT NULL,
  `id_mesa` int(5) NOT NULL,
  `id_estado` int(5) NOT NULL,
  FOREIGN KEY (`id_mesa`) REFERENCES `mesa` (`id`),
  FOREIGN KEY (`id_estado`) REFERENCES `estado_mesa` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
INSERT INTO `mesa` (`id`, `nombre`) VALUES
(1, 'mesa 1'),
(2, 'mesa 2'),
(3, 'mesa 3'),
(4, 'mesa 4'),
(5, 'mesa 5'),
(6, 'mesa 6'),
(7, 'mesa 7'),
(8, 'mesa 8'),
(9, 'mesa 9'),
(10, 'mesa 10');
 
INSERT INTO `estado_mesa` (`id`, `nombre`) VALUES
(1, 'libre'),
(2, 'ocupada');
 
INSERT INTO `ultimo_estado_mesa` (`id`, `id_mesa`, `id_estado`) VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 1),
(4, 4, 2),
(5, 5, 1),
(6, 6, 2),
(7, 7, 1),
(8, 8, 2),
(9, 9, 1),
(10, 10, 2);
 
INSERT INTO `movimiento_mesas` (`id`, `fecha`, `hora`, `id_mesa`, `id_estado`) VALUES
(1, '2019-03-09', '13:00', 1, 1),
(2, '2019-03-10', '14:00', 2, 2),
(3, '2019-03-12', '15:00', 3, 1),
(4, '2019-03-11', '19:00', 4, 2),
(5, '2019-03-13', '20:00', 5, 1),
(6, '2019-03-14', '21:00', 6, 2),
(7, '2019-03-15', '22:00', 7, 1),
(8, '2019-03-16', '23:00', 8, 2),
(9, '2019-03-17', '12:00', 9, 1),
(10, '2019-03-18', '16:00', 10, 2);

file principal con html, php, ajax y respuesta en sweetalert (puedes llamarlo como desees)

index_mesas.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<?php
//* file config database PDO
include ("./config/config_db_pdo.php");
?>
 
  <!-- sweetalert2 limonte -->
  <!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.css"> -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@8.3.0/dist/sweetalert2.min.css">
 
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
 
 <!-- sweetalert2 limonte -->
  <!--   <script src="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.js"></script> -->
  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@8.3.0/dist/sweetalert2.min.js"></script>
 
<style>
.estado_libre {
    background-color: #90EE90;
}
.estado_ocupado {
    background-color: #F08080;
}
 
</style>
 
<!-- INICIO -->
<script type="text/javascript">
$(document).ready(function () {
    //* en el evento click, de la class mesa_seleccionada
	$('.mesa_seleccionada').click(function(){
 
    //* declaro variable y memorizo valor del hidden name="id_uem" que contiene el id del record seleccionada.
    var id_record_hidden = $(this).closest("div.div_mesa_area").find("input[name='id_uem']").val();
 
    //* declaro variable y memorizo valor del hidden name="mesa" que contiene el id de la mesa seleccionada.
		var id_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="nombre_mesa" que contiene el nombre de la mesa seleccionada.
		var nombre_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='nombre_mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="hidden_estado_actual_mesa" que contiene el estado actual de la mesa seleccionada.
		var hidden_estado_actual_mesa = $(this).closest("div.div_mesa_area").find("input[name='hidden_estado_actual_mesa']").val();
 
 
    //console.log("DEBBUG: id_mesa_hidden: " + id_mesa_hidden);
 
    swal({
        title: "CAMBIA ESTADO MESA",
			  html:
        "ID: " + id_mesa_hidden + " NOMBRE: " + nombre_mesa_hidden + " ESTADO ACTUAL: " + hidden_estado_actual_mesa +
        "<br><br>" +
        "Selecciona nuevo ESTADO:" +
        "<br><br>" +
				'<label for="libre"><input type="radio" id="libre" name="nuevo_estado_mesa" value="1" class="customSwalBtn">LIBRE</label>' +
			  "<br>" +
        '<label for="ocupada"><input type="radio" id="ocupada" name="nuevo_estado_mesa" value="2" class="customSwalBtn">OCUPADA</label>' +
        "<br>",
 
        preConfirm: function () {
          return new Promise(function (resolve) {
            resolve([
 
              $('input[name=nuevo_estado_mesa]:checked').val()
 
            ])
          })
        },
 
        showConfirmButton: true,
        showCancelButton: true,
        confirmButtonColor: '#36c6d3',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Cambiar Estado',
        cancelButtonText: 'Anular'
    }).then(function(result) {
 
        var estado_mesa_swal = $('input[name=nuevo_estado_mesa]:checked').val();
 
        if(result.value) {
          console.log('success');
          console.log('DEBBUG: '+ "id_record_hidden: " + id_record_hidden + " id_mesa_val_swal: " + id_mesa_hidden + " estado_mesa_swal: " + estado_mesa_swal);
 
 
 
          //INICIO - INICIO - INICIO
          //inicio ajax     
          $.ajax({
            url: "php/temp_exec_mesas.php",
            type: "POST",
            data: {
                    id_record_hidden: id_record_hidden,
                    id_mesa_hidden: id_mesa_hidden,
                    estado_mesa_swal: estado_mesa_swal,
            },
            dataType: "html",
            success: function () {
              setTimeout(function() {
                swal({
                  title: "OK, Estado Mesa Actualizado!",
                  //html: 'ID record: ' + id_record_hidden + ' ID mesa: ' + id_mesa_hidden + ' ID nuevo estado: ' +  estado_mesa_swal + '.',
                  type: "success",
                  confirmButtonText: "OK"
                }).then(function() {
                  window.location.reload();
                }, 1000);
              });
            },
            error: function (xhr, ajaxOptions, thrownError) {
            swal("ERROR!!!", "Un error ha ocurrido durante la actualizacion.", "error");
            }
          });
          //final ajax   
          //FINAL - FINAL - FINAL          
 
        } else if(result.dismiss == 'cancel') {
           console.log('cancel');
        }
    });
 
    });
 
});
</script>
 
<?php
 
$stmt = $pdo->query('SELECT uem.id id_uem, m.id id_mesa, m.nombre nombre_mesa, em.nombre estado_actual_mesa
                      FROM mesa m, estado_mesa em, ultimo_estado_mesa uem
                      WHERE m.id = uem.id_mesa AND
                      em.id = uem.id_estado');
 
while ($row = $stmt->fetch()) {
 
  if($row['estado_actual_mesa'] == "libre") {
    $estado_actual_mesa = "estado_libre";
  } else {
    $estado_actual_mesa = "estado_ocupado";
  }
 
 
?>
 
<div class="div_mesa_area">
 
  <!-- campo hidden, recupero el id del record seleccionada -->
  <input type="hidden" name="id_uem" value="<?php echo $row['id_uem'];?>">
 
  <!-- campo hidden, recupero el id de la mesa seleccionada -->
  <input type="hidden" name="mesa" value="<?php echo $row['id_mesa'];?>">
 
  <!-- campo hidden, recupero el nombre de la mesa seleccionada -->
  <input type="hidden" name="nombre_mesa" value="<?php echo $row['nombre_mesa'];?>">
 
  <!-- campo hidden, recupero el estado actual de la mesa seleccionada -->
  <input type="hidden" name="hidden_estado_actual_mesa" value="<?php echo $row['estado_actual_mesa'];?>">
 
  <input type="button" id="mesa_id_<?php echo $row['id_mesa'];?>" class="mesa_seleccionada <?php echo $estado_actual_mesa;?>" value="<?php echo $row['nombre_mesa'];?>">
</div>
<?php
}
?>

file que actualiza las tablas, lo he llamado "temp_exec_mesas.php", corrige la ruta, la mia es "php/temp_exec_mesas.php".

temp_exec_mesas.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
//* file config database PDO
include ("../config/config_db_pdo.php");
 
//recibo las variables del swal
$id_record_hidden  = $_POST["id_record_hidden"];
$id_mesa_hidden = $_POST["id_mesa_hidden"];
$estado_mesa_swal = $_POST["estado_mesa_swal"];
 
//UPDATE tabla ultimo_estado_mesa
//para el update de la tabla ultimo_estado_mesa utilizaremos las 2 variables.
//variables: ($estado_mesa_swal, $id_record_hidden)
 
$sql = "UPDATE ultimo_estado_mesa SET id_estado=? WHERE id=?";
$stmt= $pdo->prepare($sql);
$stmt->execute([$estado_mesa_swal, $id_record_hidden]);
 
 
//INSERT tabla movimiento_mesas
//para el insert en la tabla movimiento_mesas utlizaremos solo 2 variables.
//variables: ($id_mesa_hidden y $estado_mesa_swal)
//los campos fecha y hora seran insertados con NOW() y CURTIME() respectivamente.
 
$sql = "INSERT INTO movimiento_mesas (fecha, hora, id_mesa, id_estado) VALUES (NOW(), CURTIME(), ?, ?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$id_mesa_hidden, $estado_mesa_swal]);

este es el file de con confi del database con pdo, lo he llamado config_db_pdo.php corrige la ruta, la mia es ("../config/config_db_pdo.php");

debes de agregar esta informacion:

1
2
3
$db = "el_nombre_de_tu_databse"; //el nombre de tu database
$user = "user_mysql"; //tu user mysql
$pass = "password_user_mysql"; //tu password del user mysql

file config_db_pdo.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$host = "localhost";
$db = "el_nombre_de_tu_databse"; //el nombre de tu database
$user = "user_mysql"; //tu user mysql
$pass = "password_user_mysql"; //tu password del user mysql
$charset = 'utf8mb4';
 
try
{
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
 
    $pdo = new PDO($dsn, $user, $pass, $opt);
}
 
catch(PDOException $e)
{
    echo "Error:".$e->getMessage();
}

y un codigo extra para que insertes nuevas mesas

para hacer el insert de una nueva mesa: recuperas por $_POST el nombre de la nueva mesa y se hace el insert en la tabla mesa y sucesivamente se hara el insert en la tabla ultimo_estado_mesa con el id de la ultima mesa insertada y de default estado = libre.

puedes crearte un file php con un form con el siguiente tag y utilizas el codigo de abajo , lo importante es que lo llames name="nueva_mesa"

1
<input type="text" name="nueva_mesa" placeholder="Nombre nueva mesa">

llamas a este file php como quieras y en el form al action="" le pones ese nombre

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
//* para hacer el insert de una nueva mesa: 
//* recuperas por $_POST el nombre de la nueva mesa 
//* se hace el insert en la tabla mesa.
//* y sucesivamente se hara el insert en la tabla ultimo_estado_mesa con el id de la ultima mesa insertada y de default estado = libre.
 
//* INICIO - INICIO - INICIO
 
//* recuperas por $_POST el nombre de la nueva mesa (nueva_mesa)
//<input type="text" name="nueva_mesa" placeholder="Nombre nueva mesa">
 
$nueva_mesa  = $_POST["nueva_mesa"];
 
//o sino, puedes hacerlo a mano
//$nueva_mesa  = "nombre nueva mesa";
 
//se hace el insert en la tabla mesa. (solo el nombre ya que el id es autoincrement)
$sql = "INSERT INTO mesa (nombre) VALUES (?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$nueva_mesa]);
 
//capturas el ultimo id del insert de la tabla mesa.
$id_mesa_insert = $pdo->lastInsertId();
 
//se hace el insert en la tabla ultimo_estado_mesa con el ultimo id de la mesa y con default del estado libre (1).
$sql = "INSERT INTO ultimo_estado_mesa (id_mesa, id_estado) VALUES (?, ?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$id_mesa_insert, 1]);
 
// FINAL - FINAL - FINAL

todo esta comentado, lee con atencion, te sugiero que utilizes a manera de ejemplo estos files, pruebas y luego adaptas tu codigo.

recuerda corregir las rutas de los files php.

Si tienes errores escribe el codigo que utlizaste.

salud2.


tablas_mysql

index_mesas_1

index_mesas_2

index_mesas_3

index_mesas_4

index_mesas_5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 16/03/2019 13:50:34
hola italo, te agradezco por la ayuda.

todo esta bien hasta el update no me actualiza el nuevo estado mesa

el código o tengo así:

temp_exec_mesas.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//* file config database PDO
include ("../config/config_db_pdo.php");
 
//recibo las variables del swal
$id_record_hidden  = $_POST["id_record_hidden"];
$id_mesa_hidden = $_POST["id_mesa_hidden"];
$estado_mesa_swal = $_POST["estado_mesa_swal"];
 
 
$sql = "UPDATE ultimo_estado_mesa SET id_estado=? WHERE id=?";
$stmt= $pdo->prepare($sql);
$stmt->execute([$estado_mesa_swal, $id_record_hidden]);
 
 
$sql = "INSERT INTO movimiento_mesas (fecha, hora, id_mesa, id_estado) VALUES (NOW(), CURTIME(), ?, ?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$id_mesa_hidden, $estado_mesa_swal]);

y el config_db_pdo.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$host = "localhost";
$db = "el_nombre_de_tu_databse"; //el nombre de tu database
$user = "user_mysql"; //tu user mysql
$pass = "password_user_mysql"; //tu password del user mysql
$charset = 'utf8mb4';
 
try
{
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
 
    $pdo = new PDO($dsn, $user, $pass, $opt);
}
 
catch(PDOException $e)
{
    echo "Error:".$e->getMessage();
}

cave resalta que con el código que utilizo normalmente para conectarme a mi base de datos si el logrado actualizar te lo muestro:

conexion.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ini_set('default_charset', 'utf-8');
 
$server = "localhost";
$user = "root";
$pass= "pass";
$db = "foods_msi";
 
$conexion = mysqli_connect($server, $user, $pass, $db);
 
if (mysqli_connect_errno()) {
    printf("Falló la conexión: %s\n", mysqli_connect_error());
    exit();
}
 
if (!mysqli_set_charset($conexion, "utf8")) {
    printf("Error loading character set utf8: %s\n", mysqli_error($conexion));
} else {
   mysqli_character_set_name($conexion);
}
?>

y para update:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
include ("conexion.php");
 
//recibo las variables del swal
$id_record_hidden  = $_POST["id_record_hidden"];
$id_mesa_hidden = $_POST["id_mesa_hidden"];
$estado_mesa_swal = $_POST["estado_mesa_swal"];
 
//UPDATE tabla ultimo_estado_mesa
//para el update de la tabla ultimo_estado_mesa utilizaremos las 2 variables.
//variables: ($estado_mesa_swal, $id_record_hidden)
 
 
 
$consulta = "UPDATE ultimo_estado_mesa SET id_estado= '$estado_mesa_swal' WHERE id='$id_record_hidden'";
$resultado = $conexion -> query($consulta) ;
 
 
//INSERT tabla movimiento_mesas
//para el insert en la tabla movimiento_mesas utlizaremos solo 2 variables.
//variables: ($id_mesa_hidden y $estado_mesa_swal)
//los campos fecha y hora seran insertados con NOW() y CURTIME() respectivamente.
 
$consulta = "INSERT INTO movimiento_mesas (fecha, hora, id_mesa, id_estado) VALUES (NOW(), CURTIME(), '$id_mesa_hidden', '$estado_mesa_swal')";
$resultado = $conexion -> query($consulta) ;
?>


pero la duda que tengo es que quizá es necesario conectarse y actualizar de la forma que tu lo haces:

.- entonces por que no logro actualizar estado mesa con el código que me facilitaste ? y
- que le faltaría a mi código de conexión y update , para que sea optimo ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 16/03/2019 15:55:09
hola, me da la impresión que no has leido lonque escribi, sobre todo la parte donde te decia que deberás de cambiar la ruta de tus files y la parte se la conexión con tus datos, por otra parte pdo y mysqli NO tienen nada que ver, deberas adaptar el codigo a mysqli si no utilizaras pdo.

Si tienes todos los files en public deberas corregir la ruta....

en el file principal php y en el file temp_exec_mesas.php se cambia la.ruta del include

de esto

1
2
3
4
<?php
//* file config database PDO
include ("./config/config_db_pdo.php");
?>

a esto

1
2
3
4
<?php
//* file config database PDO
include ("config_db_pdo.php");
?>

file config_db_pdo.php

de esto

1
2
3
4
<?php
$db = "el_nombre_de_tu_databse"; //el nombre de tu database
$user = "user_mysql"; //tu user mysql
$pass = "password_user_mysql"; //tu password del user mysql

a esto

1
2
3
4
<?php
$db = "foods_msi"; //el nombre de tu database
$user = "root"; //tu user mysql
$pass = "pass"; //tu password del user mysql

en el file principal donde esta la llamada a ajax

de esto (cambia solo la ruta del url)

1
2
3
$.ajax({
            url: "php/temp_exec_mesas.php",
            type: "POST",

a esto


1
2
3
$.ajax({
            url: "temp_exec_mesas.php",
            type: "POST",

esos son los files y los cambios para el codigo en pdo que te había compartido.

prueba con los files que te di en pdo, para mysqli como te escribi cambian las funciones y parametros, asi que si no te funciona algo con mysqli es porque pdo tiene otro funcionamiento.

--------

tu por ejemplo , tu codigo de creacion de la conexion de mysqli lo creas con modalidad procedural, pero haces el update con modalidad orientada a objetos y eso es un error, todo depende como te conectas al database. (procedural o orientado a objetos)

en tu update, la manera procedural (la de tu conexion) es como sigue:

$sql = "update tabla set campo = valor where id = valor";

mysqli_query($conexion, $sql)

y lo mismo sera para todo lo que sea insert, update, delete.

-------

si hay errores escribelos con el codigo tambien.

lee detenidamente mis respuestas y los comentarios dentro del codigo, todo esta explicado, lee 3 o 4 o 5 veces, paso a paso luego recien que has entendido algo recien ahí copias el codigo.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 16/03/2019 17:30:59
disculpa es que me confundí al mostrar el código y mostré el mismo que tu me mostrarte sin cambios.

si e leído todo lo que mostraste y si cambie las rutas de todos los files php, ademas escribí las variables que faltaban en el update del archivo temp_exec_mesas.php y estuve haciendo pruebas y tuve que habilitar las librerías para el sweet alert que estaban comentadas y desestabilizar las otras ya que se no se me mostraba el sweet alert creo que es por la versión funciona con la 7.29.2 .

bueno tengo el código así:

index_mesas.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?php
//* file config database PDO
include ("config_db_pdo.php");
?>
 <!-- sweetalert2 limonte -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.css">
 <!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@8.3.0/dist/sweetalert2.min.css"> -->
 
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
 
 <!-- sweetalert2 limonte -->
     <script src="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.js"></script>
  <!-- <script src="https://cdn.jsdelivr.net/npm/sweetalert2@8.3.0/dist/sweetalert2.min.js"></script>  -->
 
 
<style>
.estado_libre {
    background-color: #90EE90;
}
.estado_ocupado {
    background-color: #F08080;
}
 
</style>
 
<!-- INICIO -->
<script type="text/javascript">
$(document).ready(function () {
    //* en el evento click, de la class mesa_seleccionada
	$('.mesa_seleccionada').click(function(){
 
    //* declaro variable y memorizo valor del hidden name="id_uem" que contiene el id del record seleccionada.
        var id_record_hidden = $(this).closest("div.div_mesa_area").find("input[name='id_uem']").val();
 
    //* declaro variable y memorizo valor del hidden name="mesa" que contiene el id de la mesa seleccionada.
		var id_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="nombre_mesa" que contiene el nombre de la mesa seleccionada.
		var nombre_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='nombre_mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="hidden_estado_actual_mesa" que contiene el estado actual de la mesa seleccionada.
		var hidden_estado_actual_mesa = $(this).closest("div.div_mesa_area").find("input[name='hidden_estado_actual_mesa']").val();
 
 
    console.log("DEBBUG: id_mesa_hidden: " + id_mesa_hidden);
 
    swal({
        title: "CAMBIA ESTADO MESA",
			  html:
        "ID: " + id_mesa_hidden + " NOMBRE: " + nombre_mesa_hidden + " ESTADO ACTUAL: " + hidden_estado_actual_mesa +
        "<br><br>" +
        "Selecciona nuevo ESTADO:" +
        "<br><br>" +
				'<label for="libre"><input type="radio" id="libre" name="nuevo_estado_mesa" value="1" class="customSwalBtn">LIBRE</label>' +
			  "<br>" +
        '<label for="ocupada"><input type="radio" id="ocupada" name="nuevo_estado_mesa" value="2" class="customSwalBtn">OCUPADA</label>' +
        "<br>",
 
        preConfirm: function () {
          return new Promise(function (resolve) {
            resolve([
 
              $('input[name=nuevo_estado_mesa]:checked').val()
 
            ])
          })
        },
 
        showConfirmButton: true,
        showCancelButton: true,
        confirmButtonColor: '#36c6d3',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Cambiar Estado',
        cancelButtonText: 'Anular'
    }).then(function(result) {
 
        var estado_mesa_swal = $('input[name=nuevo_estado_mesa]:checked').val();
 
        if(result.value) {
          console.log('success');
          console.log('DEBBUG: '+ "id_record_hidden: " + id_record_hidden + " id_mesa_val_swal: " + id_mesa_hidden + " estado_mesa_swal: " + estado_mesa_swal);
 
 
 
          //INICIO - INICIO - INICIO
          //inicio ajax     
          $.ajax({
            url: "temp_exec_mesas.php",
            type: "POST",
            data: {
                    id_record_hidden: id_record_hidden,
                    id_mesa_hidden: id_mesa_hidden,
                    estado_mesa_swal: estado_mesa_swal,
            },
            dataType: "html",
            success: function () {
              setTimeout(function() {
                swal({
                  title: "OK, Estado Mesa Actualizado!",
                  html: 'ID record: ' + id_record_hidden + ' ID mesa: ' + id_mesa_hidden + ' ID nuevo estado: ' +  estado_mesa_swal + '.',
                  type: "success",
                  confirmButtonText: "OK"
                }).then(function() {
                  window.location.reload();
                }, 1000);
              });
            },
            error: function (xhr, ajaxOptions, thrownError) {
            swal("ERROR!!!", "Un error ha ocurrido durante la actualizacion.", "error");
            }
          });
          //final ajax   
          //FINAL - FINAL - FINAL          
 
        } else if(result.dismiss == 'cancel') {
           console.log('cancel');
        }
    });
 
    });
 
});
</script>
 
<?php
 
$stmt = $pdo->query('SELECT uem.id id_uem, m.id id_mesa, m.nombre nombre_mesa, em.nombre estado_actual_mesa
                      FROM mesa m, estado_mesa em, ultimo_estado_mesa uem
                      WHERE m.id = uem.id_mesa AND
                      em.id = uem.id_estado');
 
while ($row = $stmt->fetch()) {
 
  if($row['estado_actual_mesa'] == "libre") {
    $estado_actual_mesa = "estado_libre";
  } else {
    $estado_actual_mesa = "estado_ocupado";
  }
 
 
?>
 
<div class="div_mesa_area">
 
  <!-- campo hidden, recupero el id del record seleccionada -->
  <input type="hidden" name="id_uem" value="<?php echo $row['id_uem'];?>">
 
  <!-- campo hidden, recupero el id de la mesa seleccionada -->
  <input type="hidden" name="mesa" value="<?php echo $row['id_mesa'];?>">
 
  <!-- campo hidden, recupero el nombre de la mesa seleccionada -->
  <input type="hidden" name="nombre_mesa" value="<?php echo $row['nombre_mesa'];?>">
 
  <!-- campo hidden, recupero el estado actual de la mesa seleccionada -->
  <input type="hidden" name="hidden_estado_actual_mesa" value="<?php echo $row['estado_actual_mesa'];?>">
 
  <input type="button" id="mesa_id_<?php echo $row['id_mesa'];?>" class="mesa_seleccionada <?php echo $estado_actual_mesa;?>" value="<?php echo $row['nombre_mesa'];?>">
 
</div>
<?php
}
?>

y el
temp_exec_mesas.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
//* file config database PDO
include ("config_db_pdo.php");
 
//recibo las variables del swal
$id_record_hidden  = $_POST["id_record_hidden"];
$id_mesa_hidden = $_POST["id_mesa_hidden"];
$estado_mesa_swal = $_POST["estado_mesa_swal"];
 
//UPDATE tabla ultimo_estado_mesa
//para el update de la tabla ultimo_estado_mesa utilizaremos las 2 variables.
//variables: ($estado_mesa_swal, $id_record_hidden)
 
$sql = "UPDATE ultimo_estado_mesa SET id_estado='$estado_mesa_swal' WHERE id='$id_record_hidden'";
$stmt= $pdo->prepare($sql);
$stmt->execute([$estado_mesa_swal, $id_record_hidden]);
 
 
//INSERT tabla movimiento_mesas
//para el insert en la tabla movimiento_mesas utlizaremos solo 2 variables.
//variables: ($id_mesa_hidden y $estado_mesa_swal)
//los campos fecha y hora seran insertados con NOW() y CURTIME() respectivamente.
 
$sql = "INSERT INTO movimiento_mesas (fecha, hora, id_mesa, id_estado) VALUES (NOW(), CURTIME(), '$id_mesa_hidden', '$estado_mesa_swal')";
$stmt= $pdo->prepare($sql);
$stmt->execute([$id_mesa_hidden, $estado_mesa_swal]);
 
?>


no actualiza estado mesa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 16/03/2019 18:00:51
si puedo conectarme a la base de datos ya que muestro los 10 botones en pantalla y el sweet alert se ejecuta completamente incluso muestra en pantalla el nuevo valor de estado mesa, pero no actualiza ese valor en la base de datos


Sin-titulocd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 16/03/2019 18:55:46
hola, es raro el comportamiento, has realizado el insert de datos de todas las tablas que había escrito?

ojo: tu ves aun en el client el nuevo estado de la mesa, porque esa variable se crea cuando clickas en el radio button y estas aun en el client luego de la respuesta del server porque la variable aun existe en el client y sweetalert la muesta hasta que la llamada ajax termine (luego que clickas en OK del popop de sweetalert), NO es la informacion que regresa de las tablas de database. (este funcionamiento es sienpre el mismo hagas lo que hagas con jquery js u otras librerias js) client y server son cosas y datos distintos.

1
var estado_mesa_swal = $('input[name=nuevo_estado_mesa]:checked').val();

para que funcione el update, (con los records del las mesas de 1 al 10 deben estar insertados los datos en todas las tablas.

controla si tienes estos records en tu tabla ultimo_estado_mesa ya que el update se aplica en esa tabla y obviamente debe tener datos.

1
2
3
4
5
6
7
8
9
10
11
12
 
INSERT INTO `ultimo_estado_mesa` (`id`, `id_mesa`, `id_estado`) VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 1),
(4, 4, 2),
(5, 5, 1),
(6, 6, 2),
(7, 7, 1),
(8, 8, 2),
(9, 9, 1),
(10, 10, 2);

si, aun teniendo los records en esa tabla, no funcionara el UPDATE, deberas ejecutar el codigo solo del update a manera de debbug y test.

create un file debbug_update_mesa.php y lo ejecutas (abres) directamente desde el navegador

y copias esto:

obviamente deberas modificar las variables a datos eataticos, por ejemplo, para la mesa 2 (record en el codigo que escribi 2), estado actual ocupado, lo pasaremos a libre.

entonces:

id record = 2
id nuevo estado mesa libre = 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
//* file config database PDO
include ("config_db_pdo.php");
 
//recibo las variables del swal
$id_record_hidden  = 2;
$estado_mesa_swal = 1;
 
//UPDATE tabla ultimo_estado_mesa
//para el update de la tabla ultimo_estado_mesa utilizaremos las 2 variables.
//variables: ($estado_mesa_swal, $id_record_hidden)
 
$sql = "UPDATE ultimo_estado_mesa SET id_estado='$estado_mesa_swal' WHERE id='$id_record_hidden'";
$stmt= $pdo->prepare($sql);
$stmt->execute([$estado_mesa_swal, $id_record_hidden]);

ejecutas el file debbug_update_mesa.php (abres directamente desde el navegador) y ahi, si es que hubiera errores los veras, en todo caso, copia en tu respuesta todo lo que aparesca a video.

*** los errores de mysql/php si lo ejecutas con ajax no son faciles de hacerlos ver desde el client, por eso, es mejor ejecutar el file por separado para ver los errores directamente con la respuesta del server.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 16/03/2019 20:01:15
si comprendo eso del nuevo estado mesa que se encuentra en el cliente ya que es creado al hacer click y que no llega de la base de datos.

y si están insertados todos los datos en las tablas y tanbien los record se encuentran en la tabla ultimo_estado_mesa como veras en la siguiente imagen:

Sin-titulocd

las otras tablas tanbien están con sus datos:

y como te dije si e logrado actualizar el estado mesa; e cambiado los estados de todas las mesas pero con este código para update:





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
php
 
include ("conexion.php");
 
//recibo las variables del swal
$id_record_hidden  = $_POST["id_record_hidden"];
$id_mesa_hidden = $_POST["id_mesa_hidden"];
$estado_mesa_swal = $_POST["estado_mesa_swal"];
 
//UPDATE tabla ultimo_estado_mesa
//para el update de la tabla ultimo_estado_mesa utilizaremos las 2 variables.
//variables: ($estado_mesa_swal, $id_record_hidden)
 
 $sql = "UPDATE ultimo_estado_mesa SET id_estado= '$estado_mesa_swal' WHERE id='$id_record_hidden'";
 mysqli_query($conexion, $sql);
 
//INSERT tabla movimiento_mesas
//para el insert en la tabla movimiento_mesas utlizaremos solo 2 variables.
//variables: ($id_mesa_hidden y $estado_mesa_swal)
//los campos fecha y hora seran insertados con NOW() y CURTIME() respectivamente.
 
$sql = "INSERT INTO movimiento_mesas (fecha, hora, id_mesa, id_estado) VALUES (NOW(), CURTIME(), '$id_mesa_hidden', '$estado_mesa_swal')";
mysqli_query($conexion, $sql);
?>

ahora voy a hacer lo del debug para poder ver los errores; haber como me va.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 17/03/2019 01:02:27
hola, quieres decir que con mysqli te funciona todo y con pdo no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 17/03/2019 03:06:15
Sí así es con mysqli me funciona, me actualiza el estado mesa y los otros datos en las otras tablas y al tener estado mesa actualizado me cambia los colores de los botones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 17/03/2019 04:26:13
hola, bueno no me explico porque con pdo no te funciona, si el codigo es el mismo que había escrito, a menos que no tengas la libreria de pdo habilitada pero me parecería raro q sea eso.

si con mysqli te funciono, pues ve adelante con eso para que no pierdas tiempo y sigas con tu proyecto y adaptes el codigo a tu necesidad.

no olvides valorar las respuestas ♢, si mis respuestas
te ayudaron con la opcion del foro "valora esta respuesta"

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 17/03/2019 11:44:07
es bueno saber que hay personas q pueden ayudarte a lograr tus metas . Este código me servirá de mucho para estudiarlo, comprenderlo y aplicarlo en otros proyectos. Gracias Italo.

Ahora necesito agregar a estos botones mesa la parte donde se elige el menú y se realiza pedido.

Pregunta :

- Tienes alguna sugerencia de cómo hacerlo para poder saber por dónde ir ??

- debería crear un botón nuevo agregar_orden para realizar pedido o lo trabajaría en el mismo botón mesa ???

- Debería crear un nuevo tema en el foro para empezar a trabajar en esta parte de las ordenes o pedidos .????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 18/03/2019 02:41:01
hola, todo depende como esta estructurado tu database, sobre todo las tablas de mesas, platos, sopas, postres, bebida, ordenes (decide como llamarlo, si ordenes o pedidos), si eventualmente habrá asignado un mesero o garzon, precios, etc etc.

deberas decidir, que cosa es un menu, ya que por logica son un conjuto de platos, entradas, sopas, etc, etc O menu 1 (tiene determinados platos), menu 2 (tiene otros platos) pero asi te complicarias la vida.

por ejemplo:

- mesa 1 libre, llegan 3 personas (a, b, c) y ocupan la mesa.
- se acerca el camarero y recibe los pedidos.
- persona A, B y C piden 2 platos diferentes entre ellos.
- persona B pide 2 postres
- persoba C pide cambiar su pedido, ya no 2 platos, solo 1 (asi qye anula un pedido)
- persona B pide uno de sus platos sin sal
- persona A pide uno de sus platos sin mani por que es alergico.
- persona A pide agua con gas y B y C sin gas
- todos piden 1 jarra de cerveza.

imagino que esa será la situación mas común.

de ese ejemplo deberas razonar y proyectarlo para implementar tu database, tus tablas, las relaciones, el tipo de datos, que tablas necesitaran el insert de datos mas de una vez (asi como el update e insert que hicimos con las mesas)

a grandes lineas es eso, tu debes de hacer lo mismo, escribir tus requerimientos y luego pasarlo a un diagrama de flujo para luego poder desarrollar el database.

una vez que tienes todo definido en tu database, solo ahi pasas a la maquetacion y diseño web (utilizaria bootstrap para eso) y en paralelo php, mysql, jquery, ajax, etc etc etc.

tu este proyecto lo estas haciendo para tu restaurante?

no has pensado en comprar un software que haga todo eso?

sobre si abrir otro tema, eres libre de hacerlo, especificando que vienes de este hilo (y ponen el link) y explicando lo que deseas obtener y/o errores si es q ya comenzaste con algun codigo.

recuerda que lo tu imaginas en tu mente se puede proyectar al web, pero claro, respetando siempre la logica que tiene una web, es decir deberas ser flexible a un posible cambio de interfaz o posicion de loa botones.

- la mesa 4 pasa de libre a ocupada.
- regreso a la pagiba principal, selecciono la mesa 4
- en alguna parte debere especificar el numero de clientes
- en alguna parte debere abrir una seccion para agregar las ordenes, cantidades, puedes separarlos por tipo de plato (platos, entradas, sopas, bebidas, etc, etc)
- regreso al panel de la mesa (no al principal) y alguna parte tendre "algo" boton, tabla para poder ver todos los pedidos d esa mesa con respectivos precios.

eso seria lo basico, debes decidir sobre los precios, donde ver los, el sub total o total de la cuenta, etc etc etc

analisa y piensa a la proyectacion de tu database desde que el cliente se sienta en la mesa y hasta cuando termina de pagar, recuerda que hay clientes que piden comida para recoger y llevar (ahi no hay mesa, pero si pedido) o si haces delivery etc etc etc...

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 18/03/2019 05:06:49
Mis padres tienen un restaurante quisiera implementar el software ahí, pero mi principal objetivo es aprender al máximo desarrollo web y hacer una carrera con esos conocimientos.

Voy a analizar todo lo por ti indicado acerca de las ordenes.

Con respecto a la estructura del menú ya la tengo ya que es la misma que se presenta en la carta fisica y básicamente es de esta forma:

CARTA

- COMIDA CRIOLLA
* Lomo saltado.
* Churrasco a lo pobre.
* lomo a lo pobre.
- COMIDA TIPICA.
* Chicharrón.
* Cesina Shilpida .
* Frito.
- PESCADOS Y MARISCOS.
* Filete de tollo.
* Chicharron de pescado.
* Sudado
- ENTRADAS
* Tamal
* Papá rrellena.
* Papá huacaina.
- BEBIDAS
* Gaseosas grande
* Gaseosas pequeñas
* Cerveza
* Refrescos
* Infusiones
- OTROS
* Otros platos q se agregan según temporada

Esa es la estructura de la carta original del negocio. Y de esa misma forma deseo estructurarlA en el software:

Que después de haver elegido una mesa emerja un menú desplegable donde pueda elegir una de las categorías de comidas (comida criolla, comida típica, pescados, etc)

Una vez elegida la categoría mostrar otro menú
Donde pueda elegir las subcategoria, además disponer de un campo donde se pueda hacer un comentario por cada plato elegido (sin sal, con sal, etc.

Todo este código para gestión de uduarios, clientes, carta, mesas, órdenes ya lo tengo pero solamente en PHP , muestro y manejo mis pedidos en td relacionándo mi tabla pedidos con otra tabla detalle pedidos que está a su vez está relacionada con la tabla carta, mesas, mozos. Y mi objetivo es cambiar solamente la forma de presentar las mesas y elegir orden a pedir, ya q como te dije lo venía haciendo solo con PHP mostrando mis registros en tablas. Y de esta forma también puedo eliminar los iten de la tabla detalle pedidos .

Las situaciones que se pueden dar también las conozco ya q como te dije es el negocio de mis padre y también trabajó ahi.

Y esa sería la forma basica de como deseo que se presente la carta en el sistema ya después se podrían agregar otras funciones de acuerdo al estudio de las situaciones q pudieran darse.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 21/03/2019 09:44:51
para la parte grafica, puedes utilizar sweetalert (aunque sino tienes manejo de esa libreria sera complicado), puedes optar por bootstrap ya que hay muchos ejemplos que podras utlizar.

- puedes comenzar por partes, por ejemplo clickas el boton menu y se abren los platos
- lo mismo con las ordenes, has todo por parte, a menera de aprendisaje y luego aplicas por partes

luego, realizas todo tu proyecto.

Si tienes problemas o errores, vas abriendo temas especificos.

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 21/03/2019 15:48:02
gracias por los ejemplos.

una ultima consulta sobre este código . Como puedo llamar una tabla que muestra una consulta; utilizando el mismo evento click que me muestra el sweet alert ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 22/03/2019 11:13:20
hola, aque te refieres?

una select mysql? el resultado lo quieres en una tabla html dentro el sweet alert?

si no es eso, explicate mejor y en que evento (en cual click).

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 22/03/2019 14:56:18
si me refiero a un select mysql que me muestre el resultado en una tabla html pero dentro de un div , no dentro del sweet alert, es decir en la misma pantalla donde tengo mis botones mesa. utilizando un while para mostrar los registros de la bd

En el evento click del boton mesa, el mismo que me muestra los sweet alert. es decir que al mismo tiempo que me muestra el sweetalert me muestre tanbien en pantalla dentro de un div la tabla con el resultado de consulta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 22/03/2019 16:31:27
y el div de la tabla dentro del sweetalert? o en que parte? puedes hacer una imagen de ejemplo de loque deseas.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 22/03/2019 16:56:21
algo así:

una vez clickado boton mesa me muestra el sweet alert y tanbien la tabla a la derecha de los botones.


kkkk



luego elegido el estado mesa y al desaparecer sweet alert me quede así:


Sin-titulo


KDOWKOW
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 22/03/2019 23:18:45
hola, entonces, supongamos que el div se muestra solo luego de regresar del sweetalert y solo cuando la mesa se cambia a ocupada, ya que si la mesa esta libre no tiene sentido hacer ver el div con la tabla vacia (esto puede crear confusión) y al contrario, cuando la mesa pasa de ocupada a libre ya no muestro el div.

en jquery hay dos metodos que se llaman show y hide respectivamente, luego de la respuesta del sweetalert (luego del mensaje de "OK, estado mesa actualizado") puedes interactuar con el show y hide del div, puedes iniciar solo con el show, tendras que decidir si no hacer ver el div cuando la mesa este libre.

$("#id_div").show();

con ajax luego tendrás que popular la tabla de tu div en cada interacción con mysql.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 23/03/2019 05:48:14
Cada vez que se ingrese a este módulo mesas se mostraría una imagen del negocio en dicho div, y cuando la mesa este libre podria mostrar la misma imagen del negocio en el div, y mostrar la misma imagen también en el div al pasar de estado ocupado a libre.

o podría mostrar la tabla vacía no habría problema.

Pero claro ya sea la imagen o la tabla vacía si el estado mesa es libre estos dos siempre se verían por detras del sweet alert .

Solo al cambiar el estado de libre a ocupado se tendría acceso a la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 29/03/2019 04:31:01
Hola, pues para eso debes de agregar una llamada de ajax con la select de los pedidos y en el file php creas la tabla html que le das al div id de respuesta de ajax.

algo asi:

temp_mesas.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
<?php
//* file config database PDO
include ("./config/config_db_pdo.php");
?>
 
  <!-- sweetalert2 limonte -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.css">
 
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
 
 <!-- sweetalert2 limonte -->
  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.js"></script>
 
<style>
.estado_libre {
    background-color: #90EE90;
}
.estado_ocupado {
    background-color: #F08080;
}
/*
.st_gestion_mesas_pedidos {
  width: 100%;
  border-style: solid;
  border-color: #92a8d1;
}
  
.st_mesas {
  width: 50%;
  border-style: solid;
  border-color: #459e28;
}
  
.st_pedidos {
  width: 50%;
  border-style: solid;
  border-color: #ec690c;
  margin-left: auto;
}
*/
.st_gestion_mesas_pedidos {
    width: 100%;
    height: 380px;
    background: aqua;
    margin: auto;
    padding: 10px;
}
.st_mesas {
    width: 30%;
    height: 360px;
    background: red;
    float: left;
}
.st_pedidos {
    margin-left: 30%;
    height: 360px;
    background: #f8f9fa;
}
 
</style>
 
<!-- INICIO -->
<script type="text/javascript">
$(document).ready(function () {
    //* en el evento click, de la class mesa_seleccionada
	$('.mesa_seleccionada').click(function(){
 
    //* declaro variable y memorizo valor del hidden name="id_uem" que contiene el id del record seleccionada.
    var id_record_hidden = $(this).closest("div.div_mesa_area").find("input[name='id_uem']").val();
 
    //* declaro variable y memorizo valor del hidden name="mesa" que contiene el id de la mesa seleccionada.
		var id_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="nombre_mesa" que contiene el nombre de la mesa seleccionada.
		var nombre_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='nombre_mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="hidden_estado_actual_mesa" que contiene el estado actual de la mesa seleccionada.
		var hidden_estado_actual_mesa = $(this).closest("div.div_mesa_area").find("input[name='hidden_estado_actual_mesa']").val();
 
    /***************************************************************************************************/
    /***************************************************************************************************/
    /***************************************************************************************************/
 
    //Si la mesa esta ocupada, hago la select de los pedidos y la muestro.
 
    if (hidden_estado_actual_mesa == "ocupada"){
 
        //id_mesa_hidden
 
        $.ajax({
          type:'POST',
          url:'php/temp_ajax_pedido_libre_ocupado.php',
          data:'id_mesa='+id_mesa_hidden,
          success:function(html) {
            $('#pedido_libre_ocupado').html(html);
          }
        });
 
      var tabla_select = "<div id='pedido_libre_ocupado' class='limpio'></div>";
 
      $('.limpio').remove();
      $('#div_pedidos').append(tabla_select)
 
      console.log("DEBBUG: Si estado mesa actual es ocupada muestro tabla html: " + hidden_estado_actual_mesa);
 
    } else if (hidden_estado_actual_mesa == "libre") {
 
      //Si la mesa esta libre, muestro una imagen
 
      $('.limpio').remove();
      $('#div_pedidos').append('<img class="limpio" src="https://openclipart.org/download/298048/chef-restaurant-logo-publicdomainvectors.svg">')
 
      console.log("DEBBUG: Si estado mesa actual es libre muestro img: " + hidden_estado_actual_mesa);
 
    }
 
    /***************************************************************************************************/
    /***************************************************************************************************/
    /***************************************************************************************************/
 
    console.log("DEBBUG: estado mesa actual: " + hidden_estado_actual_mesa);
 
    swal({
        title: "CAMBIA ESTADO MESA",
			  html:
        "ID: " + id_mesa_hidden + " NOMBRE: " + nombre_mesa_hidden + " ESTADO ACTUAL: " + hidden_estado_actual_mesa +
        "<br><br>" +
        "Selecciona nuevo ESTADO:" +
        "<br><br>" +
				'<label for="libre"><input type="radio" id="libre" name="nuevo_estado_mesa" value="1" class="customSwalBtn">LIBRE</label>' +
			  "<br>" +
        '<label for="ocupada"><input type="radio" id="ocupada" name="nuevo_estado_mesa" value="2" class="customSwalBtn">OCUPADA</label>' +
        "<br>",
 
        preConfirm: function () {
          return new Promise(function (resolve) {
            resolve([
 
              $('input[name=nuevo_estado_mesa]:checked').val()
 
            ])
          })
        },
 
        showConfirmButton: true,
        showCancelButton: true,
        confirmButtonColor: '#36c6d3',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Cambiar Estado',
        cancelButtonText: 'Anular'
    }).then(function(result) {
 
        var estado_mesa_swal = $('input[name=nuevo_estado_mesa]:checked').val();
 
        if(result.value) {
          console.log('success');
          console.log('DEBBUG: '+ "id_record_hidden: " + id_record_hidden + " id_mesa_val_swal: " + id_mesa_hidden + " estado_mesa_swal: " + estado_mesa_swal);
 
 
 
          //INICIO - INICIO - INICIO
          //inicio ajax     
          $.ajax({
            url: "php/temp_exec_mesas.php",
            type: "POST",
            data: {
                    id_record_hidden: id_record_hidden,
                    id_mesa_hidden: id_mesa_hidden,
                    estado_mesa_swal: estado_mesa_swal,
            },
            dataType: "html",
            success: function () {
              setTimeout(function() {
                swal({
                  title: "OK, Estado Mesa Actualizado!",
                  //html: 'ID record: ' + id_record_hidden + ' ID mesa: ' + id_mesa_hidden + ' ID nuevo estado: ' +  estado_mesa_swal + '.',
                  type: "success",
                  confirmButtonText: "OK"
                }).then(function() {
                  window.location.reload();
                }, 1000);
              });
            },
            error: function (xhr, ajaxOptions, thrownError) {
            swal("ERROR!!!", "Un error ha ocurrido durante la actualizacion.", "error");
            }
          });
          //final ajax   
          //FINAL - FINAL - FINAL          
 
        } else if(result.dismiss == 'cancel') {
           console.log('cancel');
        }
    });
 
    });
 
});
</script>
 
<div id="div_gestion_mesas_pedidos" class="st_gestion_mesas_pedidos">
 
  <div id="div_mesas" class="st_mesas">
 
    <?php
 
    $stmt = $pdo->query('SELECT uem.id id_uem, m.id id_mesa, m.nombre nombre_mesa, em.nombre estado_actual_mesa
                          FROM mesa m, estado_mesa em, ultimo_estado_mesa uem
                          WHERE m.id = uem.id_mesa AND
                          em.id = uem.id_estado');
 
    while ($row = $stmt->fetch()) {
 
      if($row['estado_actual_mesa'] == "libre") {
 
        $estado_actual_mesa = "estado_libre";
 
      } else {
 
        $estado_actual_mesa = "estado_ocupado";
 
      }
 
 
    ?>
 
    <div class="div_mesa_area">
 
      <!-- campo hidden, recupero el id del record seleccionada -->
      <input type="hidden" name="id_uem" value="<?php echo $row['id_uem'];?>">
 
      <!-- campo hidden, recupero el id de la mesa seleccionada -->
      <input type="hidden" name="mesa" value="<?php echo $row['id_mesa'];?>">
 
      <!-- campo hidden, recupero el nombre de la mesa seleccionada -->
      <input type="hidden" name="nombre_mesa" value="<?php echo $row['nombre_mesa'];?>">
 
      <!-- campo hidden, recupero el estado actual de la mesa seleccionada -->
      <input type="hidden" name="hidden_estado_actual_mesa" value="<?php echo $row['estado_actual_mesa'];?>">
 
      <input type="button" id="mesa_id_<?php echo $row['id_mesa'];?>" class="mesa_seleccionada <?php echo $estado_actual_mesa;?>" value="<?php echo $row['nombre_mesa'];?>">
    </div>
    <?php
    }
    ?>
 
  </div>
 
  <div id="div_pedidos" class="st_pedidos">
 
    <img class="limpio" src="https://openclipart.org/download/298048/chef-restaurant-logo-publicdomainvectors.svg">
 
  </div>
 
</div>

file php/temp_ajax_pedido_libre_ocupado.php

la query es solo un ejemplo, ahi deberas cambiarla con la query de tus pedidos o lo que deseas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
//* file config database PDO
include ("../config/config_db_pdo.php");
 
  $id_mesa = $_POST["id_mesa"];
 
  $stmt = $pdo->query("SELECT id, nombre FROM mesa WHERE id = '$id_mesa';");
 
  ?>
 
  <table>
    <thead>
      <tr>
        <th>ID</th>
        <th>NOMBRE MESA</th>
      </tr>
    </thead>
    <tbody>
    <?php
    while ($row = $stmt->fetch()) {
    ?>
      <tr>
        <td><?php echo $row['id'];?></td>
        <td><?php echo $row['nombre'];?></td>
      </tr>
    <?php
    }
    ?>
    </tbody>
  </table>

verifica y modifica las rutas de los files (ajax y otros)

prueba.

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 31/03/2019 22:52:57
hola y gracias por seguir en el tema.

probe el código y esta bien hasta el momento que se ejecuta el reload:

1
2
3
.then(function() {
                  window.location.reload();
                }, 1000);

ya que si el estado de la mesa es ocupado el contenido de la tabla debería mostrare hasta presionar otro botón mesa; pero solo se muestra mientras el sweet alert esta activo y una vez presionado el boton "ok" del swett alert, se pierde la tabla y regresa la imagen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 01/04/2019 02:03:59
hola, cambie la posición del codigo sweet alert y la coloque dentro del Ifelse es decir si estado_mesa = libre => entonces me ejecuta el sweet alert; de esta forma logro mantener el contenido de la tabla cuando selecciono una mesa en estado ocupado; y ademas logro que el sweet alert se muestre solo cuando el boton_mesa clickado se encuentra en estado libre.

te muestro el código solo cambie la posición del alert, esta funcionando pero porfavor chekealo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<script type="text/javascript">
$(document).ready(function () {
    //* en el evento click, de la class mesa_seleccionada
	$('.mesa_seleccionada').click(function(){
 
    //* declaro variable y memorizo valor del hidden name="id_uem" que contiene el id del record seleccionada.
    var id_record_hidden = $(this).closest("div.div_mesa_area").find("input[name='id_uem']").val();
 
    //* declaro variable y memorizo valor del hidden name="mesa" que contiene el id de la mesa seleccionada.
		var id_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="nombre_mesa" que contiene el nombre de la mesa seleccionada.
		var nombre_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='nombre_mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="hidden_estado_actual_mesa" que contiene el estado actual de la mesa seleccionada.
		var hidden_estado_actual_mesa = $(this).closest("div.div_mesa_area").find("input[name='hidden_estado_actual_mesa']").val();
 
    /***************************************************************************************************/
    /***************************************************************************************************/
    /***************************************************************************************************/
 
    //Si la mesa esta ocupada, hago la select de los pedidos y la muestro.
 
    if (hidden_estado_actual_mesa == "ocupada"){
 
        //id_mesa_hidden
 
        $.ajax({
          type:'POST',
          url:'temp_ajax_pedido_libre_ocupado.php',
          data:'id_mesa='+id_mesa_hidden,
          success:function(html) {
            $('#pedido_libre_ocupado').html(html);
          }
        });
 
      var tabla_select = "<div id='pedido_libre_ocupado' class='limpio'></div>";
 
      $('.limpio').remove();
      $('#div_pedidos').append(tabla_select)
 
      console.log("DEBBUG: Si estado mesa actual es ocupada muestro tabla html: " + hidden_estado_actual_mesa);
 
    } else if (hidden_estado_actual_mesa == "libre") {
 
      //Si la mesa esta libre, muestro una imagen
 
      $('.limpio').remove();
      $('#div_pedidos').append('<img class="limpio" src="https://openclipart.org/download/298048/chef-restaurant-logo-publicdomainvectors.svg">')
 
      console.log("DEBBUG: Si estado mesa actual es libre muestro img: " + hidden_estado_actual_mesa);
 
 
 
		 console.log("DEBBUG: estado mesa actual: " + hidden_estado_actual_mesa);
 
    swal({
        title: "CAMBIA ESTADO MESA",
			  html:
        "ID: " + id_mesa_hidden + " NOMBRE: " + nombre_mesa_hidden + " ESTADO ACTUAL: " + hidden_estado_actual_mesa +
        "<br><br>" +
        "Selecciona nuevo ESTADO:" +
        "<br><br>" +
				'<label for="libre"><input type="radio" id="libre" name="nuevo_estado_mesa" value="1" class="customSwalBtn">LIBRE</label>' +
			  "<br>" +
        '<label for="ocupada"><input type="radio" id="ocupada" name="nuevo_estado_mesa" value="2" class="customSwalBtn">OCUPADA</label>' +
        "<br>",
 
        preConfirm: function () {
          return new Promise(function (resolve) {
            resolve([
 
              $('input[name=nuevo_estado_mesa]:checked').val()
 
            ])
          })
        },
 
        showConfirmButton: true,
        showCancelButton: true,
        confirmButtonColor: '#36c6d3',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Cambiar Estado',
        cancelButtonText: 'Anular'
    }).then(function(result) {
 
        var estado_mesa_swal = $('input[name=nuevo_estado_mesa]:checked').val();
 
        if(result.value) {
          console.log('success');
          console.log('DEBBUG: '+ "id_record_hidden: " + id_record_hidden + " id_mesa_val_swal: " + id_mesa_hidden + " estado_mesa_swal: " + estado_mesa_swal);
 
 
 
          //INICIO - INICIO - INICIO
          //inicio ajax     
          $.ajax({
            url: "temp_exec_mesas.php",
            type: "POST",
            data: {
                    id_record_hidden: id_record_hidden,
                    id_mesa_hidden: id_mesa_hidden,
                    estado_mesa_swal: estado_mesa_swal,
            },
            dataType: "html",
            success: function () {
              setTimeout(function() {
                swal({
                  title: "OK, Estado Mesa Actualizado!",
                  //html: 'ID record: ' + id_record_hidden + ' ID mesa: ' + id_mesa_hidden + ' ID nuevo estado: ' +  estado_mesa_swal + '.',
                  type: "success",
                  confirmButtonText: "OK"
                }).then(function() {
                  window.location.reload();
                }, 1000);
              });
            },
            error: function (xhr, ajaxOptions, thrownError) {
            swal("ERROR!!!", "Un error ha ocurrido durante la actualizacion.", "error");
            }
          });
          //final ajax   
          //FINAL - FINAL - FINAL          
 
        } else if(result.dismiss == 'cancel') {
           console.log('cancel');
        }
    });
 
 
 
 
 
 
    }
 
 
 
 
    });
 
});
 
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 01/04/2019 14:32:08
Hola

1
hola, cambie la posición del codigo sweet alert y la coloque dentro del Ifelse es decir si estado_mesa = libre => entonces me ejecuta el sweet alert; de esta forma logro mantener el contenido de la tabla cuando selecciono una mesa en estado ocupado; y ademas logro que el sweet alert se muestre solo cuando el boton_mesa clickado se encuentra en estado libre.

si, el codigo funciona (hace lo que le dices), pero no se si es eso lo que deseabas, por lo menos, a mi con el codigo que has puesto, el sweetalert me aparece solo cuando clicko en las mesas libres, si clicko en las mesas ocupadas (en cualquiera ocupada) no me muestra el sweetalert, es eso lo que deseas?, y si fuera asi, en que momento y como cambiarias el estado de las mesas de ocupa a libre?

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 02/04/2019 03:45:21
hola,

había pensado en cambiar el estado de ocupado a libre llamando al sweet alert desde un boton que lo ubicaría en el mismo <div> donde se muestra la tabla pedidos.

voy a ver que puedo hacer tengo algo pensado, espero me salga cualquier cosa o problema que tenga ya lo publico .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 02/04/2019 11:59:01
Hola, me parece correcto y acertado eso que deseas hacer.

a este punto, entonces, cuando cambias de estado de una mesa libre, de libre a ocupado, no seria mejor solo mostrar la opcion ocupada y ya no mas libre, asi eliminas la redundacia...

Salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 04/04/2019 14:59:36
hola;

una consulta como haría si desearía pasar por ajax , un valor de un input desde la pagina donde esta la tabla pedidos es decir: php/temp_ajax_pedido_libre_ocupado.php para recuperarlo en la pagina donde están los botones mesa: temp_mesas.php,

bueno pienso que el código ajax debería de escribirlo en php/temp_ajax_pedido_libre_ocupado.php; colocando como url a: temp_mesas.php algo asi:


1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
    url: "temp_mesas.php",
    type: "POST",
    data: {
        id_algo: id_algo,
    },
    dataType: "html",
 
    error: function (xhr, ajaxOptions, thrownError) {
    swal("ERROR!!!", "Un error ha ocurrido durante la actualizacion.", "error");
    }
});


y lo recibo en temp_mesas.php así:

1
2
3
4
5
6
7
<?php
//* file config database PDO
include ("../config/config_db_pdo.php");
 
$id_algo = $_POST["id_algo"];
 
?>


aunque esa seria la forma de hacerlo normalmente; es correcto hacerlo así ???, dado que la pagina php/temp_ajax_pedido_libre_ocupado.php se utiliza para recuperar los valores pasados por ajax desde temp_mesas.php

toda estas interrogantes me las formulo ya que existe la posibilidad de desarrollar tanbien en la aplicación una parte que responda ante la situación en que, en una mesa se realice mas de un pedido entonces había pensado en que al clickar un boton_mesa que se encuentre en estado ocupado se muestre en pantalla un div conteniendo los pedidos que pudiera tener la mesa; así como tanbien en otro div mostrar los detalles correspondientes a cada pedido de la mes clickada;

seria algo así:

Sin-titulo

entonces es posible hacer lo planteado ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 04/04/2019 16:24:41
hola, se puede hacer todo, pero no por eso quiere decir que sea correcto, si deseas agregar detalles a un pedido, tendras que (en mi opinion) crear una tabla en tu database adicional con los detalles, relacionarlos con de los pedidos de esa mesa.

por otra parte, una manera de hacer lo requerias seria, una ves que muestras el div del boton de los detalles de los pedidos, este capture el id de la mesa y el id del pedido que se clicko, ese codigo lo puedes hacer en otro <script> utilizando de ejemplo los ya tienes.

si no te referias a eso, explicalo mejor por que no entendí muy bien.

prueba.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 05/04/2019 14:05:01
hola,

la base de datos ya la tengo y las tablas están relacionadas,

a lo que me refiero es que deseo capturar el id del pedido que se clicka, para poder mostrar su detalle correspondiente; mi duda viene dado que este id_pedidos se muestra en otra pagina como es temp_ajax_pedido_libre_ocupado.php que es la que muestra los pedidos de cada mesa. y donde se clicka para elegir pedido. (todo esto siguiendo el ejemplo anterior)

entonces mi pregunta es:

el <escript> para capturar id_pedidos lo escribo en php/temp_ajax_pedido_libre_ocupado.php ?? y luego recibo lo capturado en temp_mesas.php ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 05/04/2019 15:47:21
hola

asi como se capturó el id de la mesa, tendras que capturar el id del pedido, recuerda que no estas trabajando con un form, sino con jquery, es decir de manera local, por tanto los datos y eventos son los que visualizas en la pantalla, por eso mismo tendras que capturar el id_pedido desde la misma pagina temp_mesas.php y luego enviar ese id por ajax a la pagina server (php) que realiza la query de los detalles, la respuesta (que funciona igual que el resto de ejemplos) la podras visualizar en el div u otro tag que desees.

prueba

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 06/04/2019 05:22:03
hola;

lo vengo haciendo de esta forma y no logro capturar con el ajax el id_pedidos de temp_ajax_mostrar_pedido.php:

temp_mesas.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
<?php
//* file config database PDO
include ("conexion.php");
?>
 
  <!-- sweetalert2 limonte -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.css">
 
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
 
 <!-- sweetalert2 limonte -->
  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@7.29.2/dist/sweetalert2.min.js"></script>
 
<style>
.estado_libre {
    background-color: #90EE90;
}
.estado_ocupado {
    background-color: #F08080;
}
/*
.st_gestion_mesas_pedidos {
  width: 100%;
  border-style: solid;
  border-color: #92a8d1;
}
  
.st_mesas {
  width: 50%;
  border-style: solid;
  border-color: #459e28;
}
  
.st_pedidos {
  width: 50%;
  border-style: solid;
  border-color: #ec690c;
  margin-left: auto;
}
*/
.st_gestion_mesas_pedidos {
    width: 100%;
    height: 380px;
    background: aqua;
    margin: auto;
    padding: 10px;
}
.st_mesas {
    width: 30%;
    height: 360px;
    background: red;
    float: left;
}
.st_pedidos {
    margin-left: 30%;
    height: 360px;
    background: #f8f9fa;
}
.st_detalle_pedidos {
    margin-left: 30%;
    height: 360px;
    background: #f8f9fa;
}
 
</style>
 
<!-- INICIO -->
<script type="text/javascript">
$(document).ready(function () {
    //* en el evento click, de la class mesa_seleccionada
	$('.mesa_seleccionada').click(function(){
 
    //* declaro variable y memorizo valor del hidden name="id_uem" que contiene el id del record seleccionada.
    var id_record_hidden = $(this).closest("div.div_mesa_area").find("input[name='id_uem']").val();
 
    //* declaro variable y memorizo valor del hidden name="mesa" que contiene el id de la mesa seleccionada.
		var id_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="nombre_mesa" que contiene el nombre de la mesa seleccionada.
		var nombre_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='nombre_mesa']").val();
 
    //* declaro variable y memorizo valor del hidden name="hidden_estado_actual_mesa" que contiene el estado actual de la mesa seleccionada.
		var hidden_estado_actual_mesa = $(this).closest("div.div_mesa_area").find("input[name='hidden_estado_actual_mesa']").val();
 
    /***************************************************************************************************/
    /***************************************************************************************************/
    /***************************************************************************************************/
 
    //Si la mesa esta ocupada, hago la select de los pedidos y la muestro.
 
    if (hidden_estado_actual_mesa == "ocupada"){
 
        //id_mesa_hidden
 
        $.ajax({
          type:'POST',
          url:'temp_ajax_pedido_libre_ocupado.php',
          data:'id_mesa='+id_mesa_hidden,
          success:function(html) {
            $('#pedido_libre_ocupado').html(html);
          }
        });
 
      var tabla_select = "<div id='pedido_libre_ocupado' class='limpio'></div>";
 
      $('.limpio').remove();
      $('#div_pedidos').append(tabla_select)
 
      console.log("DEBBUG: Si estado mesa actual es ocupada muestro tabla html: " + hidden_estado_actual_mesa);
 
    } else if (hidden_estado_actual_mesa == "libre") {
 
      //Si la mesa esta libre, muestro una imagen
 
      $('.limpio').remove();
      $('#div_pedidos').append('<img class="limpio" src="https://openclipart.org/download/298048/chef-restaurant-logo-publicdomainvectors.svg">')
 
      console.log("DEBBUG: Si estado mesa actual es libre muestro img: " + hidden_estado_actual_mesa);
 
 
 
 
 
		 console.log("DEBBUG: estado mesa actual: " + hidden_estado_actual_mesa);
 
    swal({
        title: "CAMBIA ESTADO MESA",
			  html:
        "ID: " + id_mesa_hidden + " NOMBRE: " + nombre_mesa_hidden + " ESTADO ACTUAL: " + hidden_estado_actual_mesa +
        "<br><br>" +
        "Selecciona nuevo ESTADO:" +
        "<br><br>" +
				'<label for="libre"><input type="radio" id="libre" name="nuevo_estado_mesa" value="1" class="customSwalBtn">LIBRE</label>' +
			  "<br>" +
        '<label for="ocupada"><input type="radio" id="ocupada" name="nuevo_estado_mesa" value="2" class="customSwalBtn">OCUPADA</label>' +
        "<br>",
 
        preConfirm: function () {
          return new Promise(function (resolve) {
            resolve([
 
              $('input[name=nuevo_estado_mesa]:checked').val()
 
            ])
          })
        },
 
        showConfirmButton: true,
        showCancelButton: true,
        confirmButtonColor: '#36c6d3',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Cambiar Estado',
        cancelButtonText: 'Anular'
    }).then(function(result) {
 
        var estado_mesa_swal = $('input[name=nuevo_estado_mesa]:checked').val();
 
        if(result.value) {
          console.log('success');
          console.log('DEBBUG: '+ "id_record_hidden: " + id_record_hidden + " id_mesa_val_swal: " + id_mesa_hidden + " estado_mesa_swal: " + estado_mesa_swal);
 
 
 
          //INICIO - INICIO - INICIO
          //inicio ajax     
          $.ajax({
            url: "temp_exec_mesas.php",
            type: "POST",
            data: {
                    id_record_hidden: id_record_hidden,
                    id_mesa_hidden: id_mesa_hidden,
                    estado_mesa_swal: estado_mesa_swal,
            },
            dataType: "html",
            success: function () {
              setTimeout(function() {
                swal({
                  title: "OK, Estado Mesa Actualizado!",
                  //html: 'ID record: ' + id_record_hidden + ' ID mesa: ' + id_mesa_hidden + ' ID nuevo estado: ' +  estado_mesa_swal + '.',
                  type: "success",
                  confirmButtonText: "OK"
                }).then(function() {
                  window.location.reload();
                }, 1000);
              });
            },
            error: function (xhr, ajaxOptions, thrownError) {
            swal("ERROR!!!", "Un error ha ocurrido durante la actualizacion.", "error");
            }
          });
          //final ajax   
          //FINAL - FINAL - FINAL          
 
        } else if(result.dismiss == 'cancel') {
           console.log('cancel');
        }
    });
 
 
 
 
 
 
    }
 
    /***************************************************************************************************/
    /***************************************************************************************************/
    /***************************************************************************************************/
 
 
 
    });
 
});
</script>
 
<!-- INICIO SCRIPT PARA EVENTO PEDIDO SELECCIONADO-->
<script type="text/javascript">
$(document).ready(function () {
    //* en el evento click, de la class mesa_seleccionada
	$('.pedido_seleccionado').click(function(){
 
    //* declaro variable y memorizo valor del hidden name="id_uem" que contiene el id del record seleccionada.
    var id_pedido_hid = $(this).closest("div.div_pedido_area").find("input[name='pedidos']").val();
 
    //* declaro variable y memorizo valor del hidden name="mesa" que contiene el id de la mesa seleccionada.
		//var id_mesa_hidden = $(this).closest("div.div_mesa_area").find("input[name='mesa']").val();
 
 
 
 $.ajax({
          type:'POST',
          url:'temp_ajax_mostrar_detalle.php',
          data:'id_pedido_hid='+id_pedido_hid,
          success:function(html) {
            $('#enviar_pedido').html(html);
          }
        });
 
	  var tabla_sel = "<div id='enviar_pedido' class='limpios'></div>";
 
      $('.limpios').remove();
      $('#div_detalle_pedidos').append(tabla_sel)
 
 
});
});
 
 
</script>
 
<div id="div_gestion_mesas_pedidos" class="st_gestion_mesas_pedidos">
 
  <div id="div_mesas" class="st_mesas">
 
    <?php
 
    $sql="SELECT uem.id id_uem, m.id id_mesa, m.nombre nombre_mesa, em.nombre estado_actual_mesa
                      FROM mesa m, estado_mesa em, ultimo_estado_mesa uem
                      WHERE m.id = uem.id_mesa AND
                      em.id = uem.id_estado";
$resultado = mysqli_query($conexion, $sql);
 
 
    while ($row=mysqli_fetch_array($resultado)) {
 
      if($row['estado_actual_mesa'] == "libre") {
 
        $estado_actual_mesa = "estado_libre";
 
      } else {
 
        $estado_actual_mesa = "estado_ocupado";
 
      }
 
 
    ?>
 
    <div class="div_mesa_area">
 
      <!-- campo hidden, recupero el id del record seleccionada -->
      <input type="hidden" name="id_uem" value="<?php echo $row['id_uem'];?>">
 
      <!-- campo hidden, recupero el id de la mesa seleccionada -->
      <input type="hidden" name="mesa" value="<?php echo $row['id_mesa'];?>">
 
      <!-- campo hidden, recupero el nombre de la mesa seleccionada -->
      <input type="hidden" name="nombre_mesa" value="<?php echo $row['nombre_mesa'];?>">
 
      <!-- campo hidden, recupero el estado actual de la mesa seleccionada -->
      <input type="hidden" name="hidden_estado_actual_mesa" value="<?php echo $row['estado_actual_mesa'];?>">
 
      <input type="button" id="mesa_id_<?php echo $row['id_mesa'];?>" class="mesa_seleccionada <?php echo $estado_actual_mesa;?>" value="<?php echo $row['nombre_mesa'];?>">
    </div>
    <?php
    }
    ?>
 
  </div>
 
  <div id="div_pedidos" class="st_pedidos">
 
    <img class="limpio" src="https://openclipart.org/download/298048/chef-restaurant-logo-publicdomainvectors.svg">
 
  </div>
  <div id="div_detalle_pedidos" class="st_detalle_pedidos">
 
    <img class="limpios" src="https://openclipart.org/download/298048/chef-restaurant-logo-publicdomainvectors.svg">
 
  </div>
 
</div>

y

temp_ajax_mostrar_detalle.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
include ("conexion.php");
 
 
		$id_pedido_hid = $_POST["id_pedido_hid"];
 
 
	$sql = "SELECT dp.id id_dp, dp.id_pedidos, dp.plato, dp.precio FROM detalle_pedidos dp WHERE dp.id_pedidos = '$id_pedido_hid'";
	$resultado = mysqli_query($conexion, $sql);
 
?>
 
	  <table>
    <thead>
      <tr>
        <th>ID</th>
		<th>plato</th>
		<th>precio</th>
      </tr>
    </thead>
    <tbody>
    <?php
    while ($row=mysqli_fetch_array($resultado)) {
    ?>
      <tr>
        <td><?php echo $row['id'];?></td>
		<td><?php echo $row['plato'];?></td>
		<td><?php echo $row['precio'];?></td>
      </tr>
    <?php
    }
    ?>
    </tbody>
  </table>

y los pedidos los muestro así:

temp_ajax_mostrar_pedido.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
include ("conexion.php");
 
  $id_mesa = $_POST["id_mesa"];
  $sql = "SELECT ped.id id_pedidos, ped.id_mesa FROM pedidos ped WHERE ped.id_mesa = '$id_mesa'";
  $resultado = mysqli_query($conexion, $sql);
 
  while ($row=mysqli_fetch_array($resultado)) {
?>
	<div id="titulomenupedidos"> pedidos mesa <?php echo $id_mesa;?></div>
 
	<div class="div_pedido_area">
 
		<!-- campo hidden, recupero el id del pedido seleccionado -->
		<input type="hidden" name="pedidos" value="<?php echo $row['id_pedidos'];?>">
		<!-- campo hidden, recupero el id de la mesa seleccionada -->
		<input type="hidden" name="mesa" value="<?php echo $row['id_mesa'];?>">
 
		<input type="button" id="pedidos_id_<?php echo $row['id_pedidos'];?>" class="pedido_seleccionado" value="<?php echo $row['id_pedidos'];?>">
 
        </div>
 
 <?php
}
 
?>

no logro ver el error...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 07/04/2019 02:25:29
Hola,

he visto que el codigo de este file, carga los pedidos temp_ajax_mostrar_pedido.php sin embarbo no veo que lo utilizes por ninguna parte, talvez deberas sostituirlo en lugar de este file temp_ajax_pedido_libre_ocupado.php (en su ajax), de esa manera el dom se carga con el ajax nuevamente, a lo mejor el error podria estar ahi.

si no es asi (como escribi arriba) pues no veo que utlizes el file temp_ajax_mostrar_pedido.php y entonces la pregunta seria para que sirve ese file ya que es el que agrega el div del form de los detalles y no lo utilizas...

recuerda que si no hay errores de sintaxis ningun ide o instrumento de debug para desarrolladores (chorme, firefox, edge) te lo hara ver.

la logica pensada no tiene errores, la logica escrita si, pero ningun navedador te la dira, salvo errores de sintaxis o utlizo del lenguaje.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 07/04/2019 03:29:52
hola,

el archivo temp_ajax_pedido_libre_ocupado.php ya no lo utilizo en su lugar estoy utilizando temp_ajax_mostrar_pedido.php solo que olvide cambiarlo para mostrarte el ejemplo disculpa.

realmente el archivo lo tengo así:

1
2
3
4
5
6
7
8
9
10
//id_mesa_hidden
 
$.ajax({
  type:'POST',
  url:'temp_ajax_mostrar_pedido.php',
  data:'id_mesa='+id_mesa_hidden,
  success:function(html) {
    $('#pedido_libre_ocupado').html(html);
  }
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 845
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por italo_pm (145 intervenciones) el 07/04/2019 05:26:29
Hola, si lo suponia, una manera de interactuar con las respuesta de una query y luego con js o jquery se hace en la pagina que recuperas los datos, en su misma pagina, luego llegara la respuesta por ajax.

en tu caso, deberas eliminar la parte de jquery de la pagina principal (temp_mesas.php) y hacer todo junto en la pagina temp_ajax_mostrar_pedido.php, quedaria asi mas o menos, recuerda gestionar la parte del remove o donde mostrar los datos y como.... verifica la ruta y las select mysql (daba un error que no encontraba el id)...

temp_mesas.php

1
elimina la parte del script de $('.pedido_seleccionado').click(function() {

temp_ajax_mostrar_pedido.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
 
//* file config database PDO
include ("../config/config_db_pdo.php");
 
$id_mesa = $_POST["id_mesa"];
 
$stmt = $pdo->query("SELECT ped.id id_pedidos, ped.id_mesa
                    FROM pedidos ped 
                    WHERE ped.id_mesa = '$id_mesa'");
 
while ($row = $stmt->fetch()) {
 
?>
 
<!-- INICIO SCRIPT PARA EVENTO PEDIDO SELECCIONADO-->
<script type="text/javascript">
$(document).ready(function () {
 
  $('.pedido_seleccionado').click(function() {
 
    //* declaro variable hidden name="pedidos"
    var id_pedido_hid = $(this).closest("div.div_pedido_area").find("input[name='pedidos']").val();
 
    console.log('id pedido: ' + id_pedido_hid);
 
     $.ajax({
        type:'POST',
        url:'php/temp_ajax_mostrar_detalle.php',
        data:'id_pedido_hid='+id_pedido_hid,
        success:function(html) {
          $('#enviar_pedido').html(html);
        }
     });
 
	  var tabla_sel = "<div id='enviar_pedido' class='limpios'></div>";
 
    $('.limpios').remove();
    $('#div_detalle_pedidos').append(tabla_sel)
 
 
  });
 
});
</script>
 
<div id="titulomenupedidos"> pedidos mesa <?php echo $id_mesa;?></div>
 
  <div class="div_pedido_area">
 
    <!-- campo hidden, recupero el id del pedido seleccionado -->
    <input type="hidden" name="pedidos" value="<?php echo $row['id_pedidos'];?>">
 
    <!-- campo hidden, recupero el id de la mesa seleccionada -->
    <input type="hidden" name="mesa" value="<?php echo $row['id_mesa'];?>">
 
    <input type="button" class="pedido_seleccionado" id="pedidos_id_<?php echo $row['id_pedidos'];?>" value="pedidos_id_<?php echo $row['id_pedidos'];?>">
 
  </div>
 
<?php
}
?>

temp_ajax_mostrar_detalle.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
 
//* file config database PDO
include ("../config/config_db_pdo.php");
 
$id_pedido_hid = $_POST["id_pedido_hid"];
 
$stmt = $pdo->query("SELECT dp.id id_dp, dp.id_pedidos, dp.plato, dp.precio
                    FROM detalle_pedidos dp 
                    WHERE dp.id_pedidos = '$id_pedido_hid'");
 
?>
 
<table>
  <thead>
    <tr>
      <th>id detalle p</th>
      <th>id pedidos</th>
      <th>plato</th>
      <th>precio</th>
    </tr>
  </thead>
  <tbody>
  <?php
  while ($row = $stmt->fetch()) {
  ?>
    <tr>
      <td><?php echo $row['id_dp'];?></td>
      <td><?php echo $row['id_pedidos'];?></td>
      <td><?php echo $row['plato'];?></td>
      <td><?php echo $row['precio'];?></td>
    </tr>
  <?php
  }
  ?>
  </tbody>
</table>

prueba

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MAS82
Val: 145
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por MAS82 (69 intervenciones) el 07/04/2019 12:49:51
todo bien amigo, te agradezco y voy a seguir avanzando con mi proyecto; cualquier duda te volveré a molestar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 17 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como pasar valor con input button

Publicado por carlos (4 intervenciones) el 04/09/2019 19:26:52
Como ha quedado el tema?
habeis conseguido hacer lo que queriais?

Yo quiero algo parecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar