Foros del Web » Programando para Internet » PHP »

Checkbox a BD

Estas en el tema de Checkbox a BD en el foro de PHP en Foros del Web. Buenas Tengo una lista de elementos de manera que a cada fila de la lista, le he puesto un checkbox de validacion, y al final ...
  #1 (permalink)  
Antiguo 22/05/2012, 01:21
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Checkbox a BD

Buenas

Tengo una lista de elementos de manera que a cada fila de la lista, le he puesto un checkbox de validacion, y al final del todo tengo un boton, mi pregunta es como debo hacer para que al pulsar el boton me coja todas las filas que tienen el checkbox igualado a true, me esta dando muchos problemas

he echo esto

<?php
session_start();
require("Conexion.php");

$fila2 = '';
$consulta = "SELECT * FROM tabla";
$resul=sqlsrv_query($conn,$consulta);

while( $fila2 = sqlsrv_fetch_array( $resul, SQLSRV_FETCH_NUMERIC) ) {

$Check= $_REQUEST[$fila[0]];

if($Check.checked){
echo "prueba".$fila[0];

}

}

?>


pero el if no me funciona y entran todos los valores, esto lo llamo desde el boton del otro php
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores

Última edición por 60NZ4; 22/05/2012 a las 01:51
  #2 (permalink)  
Antiguo 22/05/2012, 01:55
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Checkbox a BD

Seria bueno que pongas tu codigo HTML, aunque de primera vista parece ser que no esta mandando toda la informacion amm pero no lo se si no veo el codigo HTML

Tambien podrias intentar con esto:

Código PHP:
Ver original
  1. if(isset( $_REQUEST[$fila[0]]))
  2. {
  3.     echo "prueba".$fila[0];
  4. }

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #3 (permalink)  
Antiguo 22/05/2012, 02:10
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

Hola y gracias por tu rapida respuesta ^^, he probado ese codigo y no funciona tampoco :S ,

solo utilizo PHP, pero aqui te lo adjunto


<table class="contenidos" border="0" cellpadding="0" cellspacing="0">

<tr>
<th>Nombre</th>
<th>Telefono1</th>
<th>Telefono2</th>
<th>Email</th>
<th>Fecha</th>
<th>Validar</th>


</tr>
<?php

$fila = '';
$consulta = "SELECT * FROM TABLA;
$resul=sqlsrv_query($conn,$consulta);

while( $fila = sqlsrv_fetch_array( $resul, SQLSRV_FETCH_NUMERIC) ) {


echo'<tr class="FilaCliente">';

echo '<td>'.$fila[1].'</td>';
echo '<td>'.$fila[2].'</td>';
echo '<td>'.$fila[3].'</td>';
echo '<td>'.$fila[4].'</td>';
echo '<td>'.$fila[5]->format('d-m-Y').'</td>';
echo '<td><center><input type="checkbox" name='.$fila[0].'></center></td>';

echo '</tr>';

}

sqlsrv_free_stmt( $resul);
?>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>
<form action="Validar.php" method="post">
<input type="submit" name="nuevo" value="Validar" class="BotonEstiloCD" title="Añadir nuevo elemento">
</form>
</td>
</tr>
</table>

creo que el error lo tengo al recuperar el dato del checkbox de este archivo dado que si hago echo $fila[0]; sale vacio jejeje

saludos
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #4 (permalink)  
Antiguo 22/05/2012, 02:19
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Checkbox a BD

remplaza esto

Código PHP:
Ver original
  1. echo '<td><center><input type="checkbox" name='.$fila[0].'></center></td>';

por esto

Código PHP:
Ver original
  1. echo '<td><center><input type="checkbox" name="rows[]" value='.$fila[0].'></center></td>';

y luego esto

Código HTML:
Ver original
  1. $Check= $_REQUEST[$fila[0]];
  2.  
  3. if($Check.checked)
  4. {
  5.     echo "prueba".$fila[0];
  6. }

por esto

Código HTML:
Ver original
  1. if(in_array($fila[0], $_POST['rows']))
  2. {
  3.     echo "prueba" . $fila[0];
  4. }

Nos comentas si te funciona o si te manda error(tambien pones el error XD).

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #5 (permalink)  
Antiguo 22/05/2012, 02:28
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

he probado ese codigo y no ha funcionado jejeje

me aparece un error en esta linea if(in_array($fila[0], $_POST['rows']))

este es el error

Warning: in_array() expects parameter 2 to be array, null given in

tambien decir que sale repetido tantas veces como lineas de checkbox tengo en la otra pagina
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #6 (permalink)  
Antiguo 22/05/2012, 02:34
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Checkbox a BD

Mira acabo de ver que estabas poniendo mal una variable.

while( $fila2 = sqlsrv_fetch_array( $resul, SQLSRV_FETCH_NUMERIC) )

es $fila2 no $fila, modifica esto y vuelves a intentar.

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #7 (permalink)  
Antiguo 22/05/2012, 02:43
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

quiza sea un error, pero estaba echo asi aposta, te explico

la cosa era hacer la misma select que en el otro fichero, para que coincidiesen los registros, como en la otra select la variable se llama $fila , aqui puse $fila2 para que no hubiese problemas,digo que quiza sea un error porque quiza este mal planteado, por cierto he probado a cambiarlo, pero sigue dando el error, el mismo jeje

un saludo
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #8 (permalink)  
Antiguo 22/05/2012, 03:01
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Checkbox a BD

Esta raro pero bueno verifica bien tu código php, acá te dejo un ejemplo funcionando.

Código PHTML:
Ver original
  1. <html>
  2.   <head>
  3.   </head>
  4.   <body>
  5.     <?php if(isset($_POST['rows'])): ?>
  6.     <?php for($i = 1; $i <= 10; $i++): ?>
  7.     <ul>
  8.       <?php if(in_array($i, $_POST['rows'])): ?>
  9.       <li>
  10.         El check <strong><?php echo $i ?></strong> fue seleccionado!
  11.       </li>
  12.       <?php endif ?>
  13.     </ul>
  14.     <?php endfor ?>
  15.     <?php else: ?>
  16.     <form method="POST">
  17.       <?php for($i = 1; $i <= 10; $i++): ?>
  18.       <label>
  19.         <input type="checkbox" name="rows[]" value='<?php echo $i ?>'>
  20.       <?php echo $i ?>
  21.       </label><br />
  22.       <?php endfor ?>
  23.       <button type="submit">Enviar</button>
  24.     </form>
  25.     <?php endif ?>
  26.   </body>
  27. </html>

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #9 (permalink)  
Antiguo 22/05/2012, 03:19
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

muchas gracias por la ayuda

ese codigo es muy claro , pero el problema es que el problema es al pasar la variable de un php al otro, en un mismo php si lo podria aplicar, queda mas sencillo, pero no me sirve porque lamentablemente no es lo que necesito, revisare mejor mi codigo, aunque el problema lo veo en la linea que te he dicho antes $_REQUEST[$fila[0]]; no me recupera ningun valor
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #10 (permalink)  
Antiguo 22/05/2012, 03:22
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Checkbox a BD

Pon un print_r($_REQUEST); y un echo $fila[0]; y seguro veras si el problema esta ahí.

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #11 (permalink)  
Antiguo 22/05/2012, 03:31
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

no imprime nada, el error esta hay esta claro , pero no se como hacerlo para recuperar los valores

if(isset( $_REQUEST[$fila[0]])){}

esa es la instruccion que falla , dado que esta vacio y siempre entra
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #12 (permalink)  
Antiguo 22/05/2012, 03:39
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Checkbox a BD

Si aún usas esta linea

echo '<td><center><input type="checkbox" name='.$fila[0].'></center></td>';

remplazala por esta

echo '<td><center><input type="checkbox" name='.$fila[0].' value="1"></center></td>';

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #13 (permalink)  
Antiguo 22/05/2012, 03:46
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

pero...

¿con que fin?

lo he probado pero ponerlo asi tal cual no tiene logica, para eso deberia de usar el value en algun sitio, algo estoy pasando por alto, a que te refieres con ello

un saludo
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #14 (permalink)  
Antiguo 22/05/2012, 03:58
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Checkbox a BD

Tienes razón y creo saber que pasa fíjate que los campos están fuera del formulario por eso no te manda nada.

Mete todos los check al formulario.

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #15 (permalink)  
Antiguo 22/05/2012, 04:14
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

uf uf uf valla fallo mas tonto jejeje, eso seguro que estaba mal, gracias por tu ayuda


aun asi ,ahora falla el otro php

sigue siendo lo mismo no recupero ningun valor

la instruccion $REQUEST[$fila[0]];

imagino que es porque la instruccion $fila[0] es del otro php y no la reconoce, tiene su logica , que deberia hacer para poder recuperar esos valores

un saludo
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #16 (permalink)  
Antiguo 22/05/2012, 04:25
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 12 años
Puntos: 2
Respuesta: Checkbox a BD

Acabo de sacarlo!!!!!


como no reconoce el $_REQUEST[$fila[0]];


lo que he echo es igualarlo a la select de mi segundo php , que al ser igual que la del primero quedaria asi:

<?php
session_start();
require("Conexion.php");

$fila2 = '';
$consulta = "SELECT * FROM tabla";
$resul=sqlsrv_query($conn,$consulta);

while( $fila2 = sqlsrv_fetch_array( $resul, SQLSRV_FETCH_NUMERIC) ) {


$Check = $_REQUEST[$fila2[0]];


if ($Check == "on"){
echo "pru".$fila2[0];
}
}

?>

igualo todo a lo de la segunda fila es decir a la fila de aqui y al recuperar el mismo valor que tengo en el primer php lo reconoce, imagino que no sera la forma mas optima pero funciona

muchas gracias por tu ayuda un abrazo
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores

Etiquetas: bd, checkbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.