Ver Mensaje Individual
  #10 (permalink)  
Antiguo 07/07/2014, 13:47
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Bloquear checkbox a partir de resultado de consulta php+mysql

A ver, me parece que te estas ahogando en un vaso de agua, supongamos los siguientes casos (puede que no sean asi, tu los adaptaras a tus necesidades.)

1) El archivo se llama listado.php
2) Los equipos con status = "A" estan ocupados y su checkbox aparece marcado y desabilitado.
3) Al marcar un checkbox de un equipo con status != "A" el status de ese equipo pasa a ser "A".
4) La cantidad de equipos es N, es decir, una cantidad variable.

En el siguiente codigo vas a ver como, con las 4 consideraciones anteriores, se puede resolver, si bien es levemente diferente al tuyo es para que te guies y puedas adaptarlo.

Una cosa importante, es que no es necesario que uses un formulario, en vez de manejar los datos por post, puedes enviarlos por get, con lo cual la cuestion se simplifica mucho (en este caso particular), en el ejemplo, esta como se aplicaria el update por este metodo.

Código PHP:
Ver original
  1. <?php
  2.     if(isset($_GET["update_state"]) && $_GET["update_state"])
  3.     {
  4.         mysql_query("UPDATE equipos SET status = 'A' WHERE id_equipo = ".$_GET["update_state"]);
  5.     }
  6.    
  7.     $result = mysql_query("SELECT id_equipo, status FROM equipos");
  8.     if(mysql_num_rows($result) > 0)
  9.     {
  10.         echo("<table>");
  11.         while($row=mysql_fetch_array($result))
  12.         {
  13.             echo("<tr>
  14.                    <td>Equipo: #$row[id_equipo]</td>
  15.                    <td>Status: $row[status]</td>
  16.                    <td><input type=\"checkbox\" onChange=\"location.href='listado.php?update_state=$row[id_equipo]'\" ".($row["status"] == "A" ? "checked disabled" : "")."></td>
  17.                </tr>";
  18.        }
  19.         echo("</table>");
  20.     }
  21.     else
  22.         echo("No hay equipos cargados.");
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios