FOROS DE INFORMATICA
Noticias: Habilitada la opción de Karma para usuarios con más de 50 mensajes
 
*
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
Julio 27, 2021, 08:46:20


Ingresar con nombre de usuario, contraseña y duración de la sesión


Páginas: [1]
  Imprimir  
Autor Tema: Checkbox - por favor  (Leído 4200 veces)
adminescuela
Nuevo
*

Karma:0
Desconectado Desconectado

Mensajes: 8


« : Septiembre 27, 2012, 02:55:03 »

Hola a todos.
Lo que necesito hacer es:
Despues de haber obtenido los resultados de una consulta en php, se agregan casillas de verificación a ciertos campos de la tabla.
Quiero que haciendo un clic en cualquiera de las casillas, se haga el correspondiente update a la base de datos cambiando el estado de esa variable.
No sé cómo empezar.  Shocked
Ya tengo los resultados y las casillas se agregan bien, pero no sé cómo seguir.
Ayuda por favor.  Bostezar
Gracias.
En línea
Etereo
Global Moderator
Habitante
*****

Karma:9
Desconectado Desconectado

Mensajes: 2374



« Respuesta #1 : Septiembre 27, 2012, 03:27:10 »

Hola, puedes hacerlo creando un campo oculto que guardará el número de la fila que quieres modificar. Luego en las casillas colocas un evento onclick (onclick="javascript:on(numFila);") que te lanze un  javascript, éste guardará en el campo oculto el número de fila y lanzará un submit:

Código:
function on(val)
{
  document.getElementById('campoOculto').value=val;
  document.forms[0].submit();
}

En el código php miras si el campo oculto viene a vacío, si no está lleno pues actualizas la fila correspondiente. Puedes recuperar los datos con $_POST habiendo definido los datos de los campos como, por ejemplo,  nombreCampo_numFila, así puedes acceder a su valor.

No sé si me he explicado bien.

La idea es ésta, hay muchas formas de hacerlo.

Un saludo
En línea

adminescuela
Nuevo
*

Karma:0
Desconectado Desconectado

Mensajes: 8


« Respuesta #2 : Septiembre 27, 2012, 03:44:14 »

Hola, puedes hacerlo creando un campo oculto que guardará el número de la fila que quieres modificar.

Gracias por la respuesta. ¿a que te referis con crear un campo oculto? en la base de datos?
En línea
Etereo
Global Moderator
Habitante
*****

Karma:9
Desconectado Desconectado

Mensajes: 2374



« Respuesta #3 : Septiembre 27, 2012, 04:01:15 »

Un campo oculto html: <input type="hidden" id="loquesea" name="loquesea" value="" />

Un saludo
En línea

adminescuela
Nuevo
*

Karma:0
Desconectado Desconectado

Mensajes: 8


« Respuesta #4 : Septiembre 27, 2012, 04:09:38 »

Para dar mas detalles de mi problema inserto código.

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titulo</title>
<meta name="keywords" content="escuela, capacitacin, judicial, catamarca, argentina, derecho, cursos, talleres, charlas, biblioteca, virtual, libros" />
<meta name="description" content="Contenidos de Escuela de Capacitacin Judicial de Catamarca" />
<link href="plantilla_estilo.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="">
<!--<script language="JavaScript" type="text/javascript" src="js/codigo.js"></script> -->

<style type="text/css">
<!--
.Estilo1 {
color: #CC6600;
font-weight: bold;
}
-->
</style>

<script type="text/javascript">
        function actualizarpagina (checkbox) {
// el siguiente bloque no funciona
if (checkbox.checked) {
                alert ("The check box is checked.");
          }
            else {
                alert ("The check box is not checked.");
            }
        }
</script>

</head>
<body>

<div id="plantilla_wrapper">

    <div id="plantilla_header">
        <div id="site_title">
       
            <h1><a href="index.php"><img src="images/logo2.png" alt="logo" width="387" height="44" border="0" /><span>M&oacutedulo de consultas</span></a></h1>
        </div> <!-- end of site_title -->
    </div> <!-- end of header -->
 
  <div id="plantilla_main"><span class="main_top"></span>
     
     <p class="welcome_text"><span class="fl_img"><img src="images/logo_escuela.png" alt="Our services" width="186" height="181" /></span><span class="Estilo1">&quot;Creciendo, Trabajando, Capacitando... &quot;</span></p>
   
   <div class="col_w620 float_r">
                  <h2>Resultados de la búsqueda</h2>
                  <div class="image_wrapper fl_img"><img src="images/lupa.png" alt="lupa" width="90" height="90" /></div>
                <p>

          <?php   
$apellido $_POST['apellido'];

$link mysql_connect("localhost","root","") or die ("no se ha podido conectar");
mysql_select_db("certificados") or die("Error al tratar de selecccionar esta base");

$sql "SELECT * FROM certificado WHERE apellido = '$apellido'";
$result mysql_query($sql,$link);

if (mysql_num_rows($result)){

echo "<table border = '1'>";
echo "<tr>";
echo "<td><b> C&oacute;digo del certificado </b></td>";
echo "<td><b> Nombre </b></td>";
echo "<td><b> Apellido </b></td>";
echo "<td><b> Nombre del Curso/Taller </b></td>";
              
echo "<td><b> Fecha de realizaci&oacuten </b></td>";
echo "<td><b> Retiró certificado </b></td>";
echo "</tr>";

while($row mysql_fetch_object($result)) {

echo "<tr>";
echo "<td>$row->id_certificado</td>";
echo "<td>$row->nombre</td>";
echo "<td>$row->apellido</td>";
echo "<td>$row->curso</td>";
echo "<td>$row->fecha</td>";
                
//echo "<td>$row->dia</td>";
                //echo "<td>$row->mes</td>";
                //echo "<td>$row->año</td>";
if($row->retirado=="NO") {
    //<form name="Modificar Registro" action="modificar-registro.php" method="post" >
//echo "<input type="submit" value="Retirado" name="boton_modificar"/>";
//echo "<td>$row->retirado</td>" +'<button onclic=""><font color="#cc0000"><strong>AQUI EL TEXTO</strong></font> </button>';
echo "<td>$row->retirado <input name=\"casilla\" type=\"checkbox\" id=\"campoOculto\" value=\"si\" onclic=\"javascript:actualizarpagina(this);\";/></td>";
//</form>
} else {
echo "<td>$row->retirado</td>";
}
echo "</tr>";

}

echo "</table>";
}else
echo "No se ha encontrado ning&uacute;n registro.";

mysql_free_result($result);

mysql_close($link);
?>

</p>
                   
                 <div class="button float_r"><a href="index.php">Volver...</a></div>
    </div>
   
               <div class="cleaner"></div>
  </div> <!-- end of main -->
    <div id="plantilla_main_bottom"></div> <!-- end of main -->
   
    <div id="plantilla_footer"><a href="http://www.wix.com/escuelavirtualcat/escuela" target="_parent">Escuela de Capacitación Judicial</a> | por Yorch-Tecno </div>
    <!-- end of plantilla_footer -->
</div> <!-- end of wrapper -->

</body>
</html>


El código anterior es el de la página que me muestra los resultados, la tabla, y la casilla de verificación
Lo que quiero es que al hacer clic en la casilla se cambie el estado de la variable y que la pagina se actualice, y muestre los mismos resultados encontrados (con el cambio reflejado)
Muchas gracias por tu ayuda y respuestas  Smiley
En línea
Etereo
Global Moderator
Habitante
*****

Karma:9
Desconectado Desconectado

Mensajes: 2374



« Respuesta #5 : Septiembre 28, 2012, 09:59:20 »

Para que te funcione el javascript:

Código:
echo "<td>$row->retirado <input name=\"casilla\" type=\"checkbox\" id=\"campoOculto\" value=\"si\" onclic=\"javascript:actualizarpagina(this);\";/></td>";

tienes que poner onclick en vez de onclic y quita el último ;

quedaría así:

Código:
[code]echo "<td>$row->retirado <input name=\"casilla\" type=\"checkbox\" id=\"campoOculto\" value=\"si\" onclick=\"javascript:actualizarpagina(this);\" /></td>";
[/code]

Un saludo
En línea

adminescuela
Nuevo
*

Karma:0
Desconectado Desconectado

Mensajes: 8


« Respuesta #6 : Septiembre 28, 2012, 01:11:02 »

Muchas gracias por la respuesta. Y disculpa que vuelva a preguntar, es que soy nuevo en esto de php , javascript, y estoy buscando mucho, leyendo más y no encuentro lo justo para lo que necesito
Ahora que funciona el javascript (era un error muy tonto el mio, lo del  "onclic" sin "k" al final ), ¿cómo hago para que se actualice la página de resultados de la consulta? ¿guardar el parámetro de búsqueda anteriormente para que realice de nuevo la consulta?
En línea
Etereo
Global Moderator
Habitante
*****

Karma:9
Desconectado Desconectado

Mensajes: 2374



« Respuesta #7 : Octubre 01, 2012, 08:17:49 »

En javascript creo recordar para refrescar la página que es,

Código:
document.location.reload(true);

Un saludo
En línea

Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.13 | SMF © 2006-2009, Simple Machines LLC

XHTML 1.0 válido! CSS válido! Dilber MC Theme by HarzeM