Foros del Web » Programando para Internet » PHP »

comprobar los checkbox

Estas en el tema de comprobar los checkbox en el foro de PHP en Foros del Web. Buenas, en un bucle creo un checkbox por cada iteracion de esta manera: Código PHP: for(...){   < input type = 'checkbox'  name = 'pk[]' > }  ...
  #1 (permalink)  
Antiguo 06/06/2010, 05:39
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 0
comprobar los checkbox

Buenas, en un bucle creo un checkbox por cada iteracion de esta manera:

Código PHP:
for(...){
  <
input type='checkbox' name='pk[]'>

La cosa es que suponiendo que tengo 3 checkbox marco los dos ultimos y me aparecen marcados los 2 primeros. Ejemplito:

De 4 checkbox marco el ultimo...
Código PHP:
for(...){
   if(
$pk[$i]==true) echo "$i --> BIEN";
   else echo 
"$i --> MAL";

Resultado en pantalla:

0 --> BIEN
1 --> MAL
2 --> MAL
3 --> MAL

¿Alguna idea de porqué?

Gracias de antemano.
  #2 (permalink)  
Antiguo 06/06/2010, 08:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: comprobar los checkbox

nunca un valor de un input te va a devolver un booleano, todos los valores son considerados string...

además que dicho valor que se obtiene es siempre el value de los checkbox, si no tienen value se envía literalmente on si ha sido marcado... (:

recuerda que solo se envían los valores que han sido marcados, los demás no...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/06/2010, 09:44
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: comprobar los checkbox

Checa esto:

Código PHP:

<form action="" method="post">
<?php
for($i=0$i<4$i++){
?>
<br /><input onClick="this.form.submit()" type="checkbox" name="<?=$i?>" />
<?php
if($_POST[$i]){
echo 
$_POST[$i];
}
}
?>
</form>


<p />

<form action="" method="post">
<?php
for($i=0$i<4$i++){
?>
<br /><input type="checkbox" name="<?=$i?>" />
<?php
if($_POST[$i]){
echo 
$_POST[$i];
}
}
?>
<br /><input type="submit" value="Eviar">
</form>
  #4 (permalink)  
Antiguo 06/06/2010, 09:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: comprobar los checkbox

Cita:
Iniciado por wiwi74 Ver Mensaje
Checa esto:

Código PHP:

<form action="" method="post">
<?php
for($i=0$i<4$i++){
?>
<br /><input onClick="this.form.submit()" type="checkbox" name="<?=$i?>" />
<?php
if($_POST[$i]){
echo 
$_POST[$i];
}
}
?>
</form>
tampoco los name deben ser completamente numéricos, ¿cuando has visto una variable que sea un numero??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/06/2010, 10:13
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: comprobar los checkbox

¿Cual seria entonces la manera correcta de guardar el valor en el vector?

La historia es que quiero marcar uno o varios campos para crear una primary key en la tabla.
Es decir quiero saber donde se ha marcado para especificar el campo que introduciré en un ALTER TABLE ... ADD PRIMARY KEY(aqui, yaqui)

Que me recomendais...
  #6 (permalink)  
Antiguo 06/06/2010, 10:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: comprobar los checkbox

pues, en realidad lo estas haciendo bien... solo que necesitas colocar datos precisos...
Código HTML:
<input name="pk[]" value="VALOR"/> 
y eso es todo, mientras pases el VALOR que necesites.. puede ser un ID, nombre de columna, etc...

el tratamiento es con un bucle, es cierto... pero debes asegurarte de que este bien formado con
Código PHP:
var_dump($_POST['pk']); 
también recuerda que solo los checkboxes marcados son enviados, los demás no...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/06/2010, 07:48
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: comprobar los checkbox

Buenaaas... Pues sí algo tan tonto como eso... al final añadi a value el valor de una variable y simplemente comprobar si t devolvia algo:

Código PHP:
if($pk[$i]!="")
{
    ........

Para acceder al campo al que hacia referencia utilice el array como indice de otro array:

Código PHP:
$campo[$pk[$i]] 
y va guay.. asi que gracias compis.

Etiquetas: checkbox, comprobar
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 07:19.