Foros del Web » Programando para Internet » PHP »

Como recoger el resultado de varios CheckBox

Estas en el tema de Como recoger el resultado de varios CheckBox en el foro de PHP en Foros del Web. tengo una tabla la cual se llega y coloca un checkbox al lado de cada registro (estilo hotmail). Mi checkBox es este: <input name="chkElimina" type="checkbox" ...
  #1 (permalink)  
Antiguo 21/06/2004, 07:22
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.115
Antigüedad: 15 años, 9 meses
Puntos: 7
Como recoger el resultado de varios CheckBox

tengo una tabla la cual se llega y coloca un checkbox al lado de cada registro (estilo hotmail).

Mi checkBox es este:
<input name="chkElimina" type="checkbox" value="<? echo $CodCarrera; ?>">

Yo regojo el resultado del checkbox asi:
echo $_POST["chkElimina"];

El problema está en que solo me devuelve el Value del último CheckBox que yo haya selecioné, me explico, si le pongo el cotejo a tres checkbox, solo me devuelve el value del último.

En ASP, cuando yo recogía el valor de los checkboxs, me devolvía una cadena con todos los values de los checkbox cotejado separado por coma, asi:
Valor1,Valor2,Valor3, etc...

Cómo puedo recoger los valores de los checkbox en PHP?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 21/06/2004, 07:42
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Hola RsOfT
esto te puede ayudar

Código PHP:
<html>
<head>
<?
if (isset($Submit))  {
foreach (
$_POST['seleccion'] as $id){ 
   echo 
$id."<br>"

 }
if (isset(
$sube))  {
unset (
$sube); 
$valor=$_POST["valor"];
$vector=$_POST["vector"];

      for(
$i=0;$i<count($valor);$i++){
          if (isset(
$vector[$i])){
             if(
$vector[$i]=="on") {
echo (
"seleccionaste ".$valor[$i]);
         }
     }
  }
}
?>

</head>
<body>
<form name="form1" method="post" action="a_la_misma_pagina.php">
<?
    $vector
=array('opcion1','opcion2','opcion3');
      for(
$i=0;$i<count($vector);$i++){
echo 
$vector[$i];

?>

  <input type="hidden" name ="valor[<? echo ($i);?>]" value="<? echo "$vector[$i]"?>">
  <input type="checkbox" name ="vector[<? echo $i?>]">
 
  <?
}
?>
<input type="hidden" name ="nombre_eviar" value="1">
  <input type="submit" name="sube" > 

</form>

</body>
</html>
Saludos
__________________
Hay tanto que aprender y tan poco tiempo
  #3 (permalink)  
Antiguo 21/06/2004, 08:40
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.115
Antigüedad: 15 años, 9 meses
Puntos: 7
Muchas gracias
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #4 (permalink)  
Antiguo 21/06/2004, 09:03
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.115
Antigüedad: 15 años, 9 meses
Puntos: 7
Yo veo que funciona, pero hay cosas que no entiendo, por ejemplo, quien es 'seleccion'?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #5 (permalink)  
Antiguo 21/06/2004, 09:13
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.115
Antigüedad: 15 años, 9 meses
Puntos: 7
Torus, pienso que en el ejemplo que utilizaste hay mucho código innecesario, si estoy mal me corrijes.

Lo hice de la siguiente forma:
Lleno el CheckBox de la siguiente forma:
Código PHP:
<input name="chkElimina[<? echo $Fila ?>]" type="checkbox" value="<? echo mysql_result($iquery,$Fila,"caCodigoCarrera"); ?>">
y luego lo recojo asi:
Código PHP:
$Codigo=$_POST["chkElimina"]; 
for(
$i=0$i count($Codigo); $i++){ 
    echo 
"seleccionaste ".$Codigo[$i]."<br>"

y eso es todo

Si tienes alguna observación, será bien recibida
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #6 (permalink)  
Antiguo 21/06/2004, 09:20
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.115
Antigüedad: 15 años, 9 meses
Puntos: 7
Me acabo de percatar que asi como lo puse no funciona del todo, porque si no le pongo el cotejo a todos los checkbox, me trae cadejas varías...

seguiré rebisando tu código...
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #7 (permalink)  
Antiguo 21/06/2004, 09:57
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.115
Antigüedad: 15 años, 9 meses
Puntos: 7
Acabo de darme cuenta que PHP saber el valor de una variable obtenida de la concatenación de una cadena... Muy bueno, muy, pero muy bueno, ASP no tiene esto...

Bueno, el caso es que resolví mi problema de la siguiente forma:
ponlos los checkBox cuyo nombre son chkElimana_1, chkElimana_2, etc. También le pongo un campo escondido que tiene el total de registros que hay.
Código PHP:
<input type="hidden" name="Total" value="<? echo $Fila ?>"><input name="chkElimina_<? echo $Fila ?>" type="checkbox" value="<? echo mysql_result($iquery,$Fila,"caCodigoCarrera"); ?>">
En la otra página hago un for desde cero hasta el total de registros. Aqui viene lo interesante de php, concateno la palabra "chkElimina_" con el valor de $i que manejo en el for, asi:
Código PHP:
for($i=0$i <= $_POST["Total"]; $i++){ 
    if (
$_POST["chkElimina_$i"] != "") {
        
$strSQL="Delete from Carreras where caCodigoCarrera = '".$_POST["chkElimina_$i"]."'";
        
$iquery=mysql_query($strSQL,$Link);
    }

Para mi, esto es una gran ventaja de PHP, el poder concatenar cadenas y que de esa concatenación se pueda saber el valor de una variable cuyo nombre sea el de la concatenación...
Muy Buena!!!!
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #8 (permalink)  
Antiguo 21/06/2004, 13:20
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Hola RsOfT:
Observa que los campos ocultos son para indicar cual es el checkbox en caso de ser selecionado. y los valores los he metido en un Array
Código PHP:
vector=array('opcion1','opcion2','opcion3'); 
para luego distribuirlos en el checkbox .
Me alegro que te sea de utilidad
Un Saludo
__________________
Hay tanto que aprender y tan poco tiempo
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 04:26.