Foros del Web » Programando para Internet » PHP »

PHP OO Capturar datos de CheckBox

Estas en el tema de Capturar datos de CheckBox en el foro de PHP en Foros del Web. Necesito capturar todos los datos seleccionados en checkbox...como lo hago aca el codigo Código PHP:   <?php        while ( $row  =  odbc_fetch_array ( $result )) { ...
  #1 (permalink)  
Antiguo 10/08/2015, 11:41
 
Fecha de Ingreso: enero-2013
Ubicación: Puerto Montt
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Capturar datos de CheckBox

Necesito capturar todos los datos seleccionados en checkbox...como lo hago aca el codigo
Código PHP:
 <?php  
    
while ($row odbc_fetch_array($result)) {
                if ((
$row['WEBCONNECT']=='1')){
                echo 
'<td> <img src="images/tourplan.jpg" /></td>';
                }
                elseif ((
$row['WEBCONNECT']=='2')){
                    echo 
'<td> </td>';
                }
                echo 
'<td>'.utf8_encode($row['NAME']).'</td>';
                echo 
'<td>'.utf8_encode($row['NAME_SUP']).'</td>';
                echo 
'<td>'.utf8_encode($row['NAME_SERVICE']).'</td>';
                echo 
'<td>'.utf8_encode($row['CODE']).'</td>';
                echo 
'<td>'.utf8_encode($row['DESCRIPTION']).'</td>';
                if(
$radio == '1') {
                echo 
'<td><input name="seleccion[]" id="seleccion" type="checkbox" value="'.$row['CODE'].'>'.$row['DESCRIPTION'].'>'.$row['OPT_ID'].'>'."ENGLISH".'" /></td>';
                }
                else if (
$radio=='2'){
                echo 
'<td><input name="seleccion[]" id="seleccion" type="checkbox" value="'.$row['CODE'].'>'.$row['DESCRIPTION'].'>'.$row['OPT_ID'].'>'."ALEMAN".'" /></td>';
                }
                else if (
$radio=='3'){
                echo 
'<td><input name="seleccion[]" id="seleccion" type="checkbox" value="'.$row['CODE'].'>'.$row['DESCRIPTION'].'>'.$row['OPT_ID'].'>'."ESPANOL".'" /></td>';
                }
                else if (
$radio=='4'){
                echo 
'<td><input name="seleccion[]" id="seleccion" type="checkbox" value="'.$row['CODE'].'>'.$row['DESCRIPTION'].'>'.$row['OPT_ID'].'>'."PORTUGUES".'" /></td>';
                }         
                echo 
'</tr>';
                            
    }
    
?>
aca toma la seleccion...luego lo envio a traves de la funcion

Código PHP:
<script>
$(
document).ready(function(){    
        $(
'#subir').click(function(){                         
            $(
"#seleccion:checked").each(function(index)
            {
                
datosch=($(this).val());
                
alert (datosch);
                $(
"#destino1").click(function () {                    
                var 
caracteristicas "height=300,width=200,scrollTo,resizable=1,scrollbars=1,location=0";  
                   
nueva=window.open('AdjuntaDescripcionMasivo.php?seleccion=' + (datosch), " "'Popup'caracteristicas);
                
nueva2=window.open('uploadify/SaveDescriptionMasiva2.php?seleccion=' + (datosch), " "'Popup'caracteristicas);
                return 
false;  
                });                
            
            })            
        });    
})
</script> 
Despues recibo los datos desde SAVEDESCRIPTIONMASIVA2

Código PHP:
<?php
require_once '../classes/Detalle.class.php';
$detalle = new Detalle();
$fecha=date('Y-m-d H:i:s');
$arr1= array($_GET["seleccion"]);
foreach (
$arr1 as $id){
    
$partes explode(">"$id);
    
$option=$partes[0];
    
$description=$partes[1];
    
$opt_id=$partes[2];
    
$idioma=$partes[3];
    echo 
$option;
    echo 
"<br>";
    echo 
$description;
    echo 
"<br>";
    echo 
$opt_id;
    echo 
"<br>";
    echo 
$idioma;
    echo 
"<br>";

    
$targetFolder '/Descripciones/uploadify/descripciones/'.$idioma// Relative to the root        
    
$ruta=$targetFolder.'/'.$opt_id;
    
$datos=$detalle->ListarDescripciones($opt_id);
    list(
$row,$num)=$datos;
        if (
$num == 0){
            if (
$idioma == "ENGLISH"){
                
$rutaen=$ruta;
                
$rutage="";
                
$rutaes="";
                
$rutapo="";
                
$detalle->InsertDescripcion($opt_id,$rutaen,$rutage,$rutaes,$rutapo);    
            }
                else if (
$idioma == "ALEMAN"){
                    
$rutaen="";
                    
$rutage=$ruta;
                    
$rutaes="";
                    
$rutapo="";
                    
$detalle->InsertDescripcion($opt_id,$rutaen,$rutage,$rutaes,$rutapo);    
                }
                    else if (
$idioma == "ESPANOL"){
                        
$rutaen="";
                        
$rutage="";
                        
$rutaes=$ruta;
                        
$rutapo="";
                        
$detalle->InsertDescripcion($opt_id,$rutaen,$rutage,$rutaes,$rutapo);    
                    }
                        else if (
$idioma == "PORTUGUES"){
                        
$rutaen="";
                        
$rutage="";
                        
$rutaes="";
                        
$rutapo=$ruta;    
                        
$detalle->InsertDescripcion($opt_id,$rutaen,$rutage,$rutaes,$rutapo);    
                        }
                
        }
    
//    else{
//            if ($idioma == "ENGLISH"){
//                $detalle->UpdateDescripcionen($opt_id,$ruta);
//            }
//                else if ($idioma == "ALEMAN"){
//                    $detalle->UpdateDescripcionge($opt_id,$ruta);
//                }
//                    else if ($idioma == "ESPANOL"){
//                        $detalle->UpdateDescripciones($opt_id,$ruta);
//                    }
//                        else if ($idioma == "PORTUGUES"){
//                            $detalle->UpdateDescripcionpo($opt_id,$ruta);                                                 
//                        }
//        }
}//Fin Foreach

?>
PERO ACA EL PROBLEMA SOLO ME TOMA EL ULTIMO VALOR SELECCIONADO DESDE LOS CHECKBOX....
ME PODRIAN AYUDAR...PLEASE
  #2 (permalink)  
Antiguo 10/08/2015, 11:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar datos de CheckBox

Cita:
PERO ACA EL PROBLEMA SOLO ME TOMA EL ULTIMO VALOR SELECCIONADO DESDE LOS CHECKBOX....
¿Exactamente cual es el código responsable de tomar los datos?

Si es el código Javascript te aviso que te equivocaste de foro.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/08/2015, 11:47
 
Fecha de Ingreso: enero-2013
Ubicación: Puerto Montt
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Capturar datos de CheckBox

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Exactamente cual es el código responsable de tomar los datos?

Si es el código Javascript te aviso que te equivocaste de foro.
EL ENCARGADO ES EL DOCTO LLAMADO SAVEDESCRIPTIONMASIVA2...Y ESO ES PHP...javascript envia datos pero me parece que el Foreach dentro de PHP esta mal
  #4 (permalink)  
Antiguo 10/08/2015, 11:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar datos de CheckBox

Cita:
javascript envia datos pero me parece que el Foreach dentro de PHP esta mal
¿Y cómo estás tan seguro?

Es decir, ¿estás depurando en la consola de desarrolladores para ver si envías el 100% de los datos?

¿Al recibir los datos depuras con var_dump() si están llegando todos?

Yo digo que el problema es Javascript por esto:

Código Javascript:
Ver original
  1. $("#seleccion:checked").each // ...

¿Sabes lo que hace each() o no?

Ahí no estás tomando todos los datos agrupados, tomas uno a uno y creas una petición por cada uno de los datos.

¿Eso es correcto?

Además, mirando el código PHP que dices igual está mal:
Código PHP:
Ver original
  1. // MAL
  2. $arr1= array($_GET["seleccion"]);
  3.  
  4. // BIEN (se supone que seleccion[] ya es un array, no necesitas meterlo dentro de otro array)
  5. $arr1= $_GET["seleccion"];
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/08/2015, 12:00
 
Fecha de Ingreso: enero-2013
Ubicación: Puerto Montt
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Capturar datos de CheckBox

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y cómo estás tan seguro?

Es decir, ¿estás depurando en la consola de desarrolladores para ver si envías el 100% de los datos?

¿Al recibir los datos depuras con var_dump() si están llegando todos?

Yo digo que el problema es Javascript por esto:

Código Javascript:
Ver original
  1. $("#seleccion:checked").each // ...

¿Sabes lo que hace each() o no?

Ahí no estás tomando todos los datos agrupados, tomas uno a uno y creas una petición por cada uno de los datos.

¿Eso es correcto?

Además, mirando el código PHP que dices igual está mal:
Código PHP:
Ver original
  1. // MAL
  2. $arr1= array($_GET["seleccion"]);
  3.  
  4. // BIEN (se supone que seleccion[] ya es un array, no necesitas meterlo dentro de otro array)
  5. $arr1= $_GET["seleccion"];
Al capturar los valores como me dices me aparece lo siguiente:
Warning: Invalid argument supplied for foreach() in C:\wamp\www\Descripciones\uploadify\SaveDescriptio nMasiva2.php on line 7....disculpa si no soy muy entendido llevo poco tiempo programando...lo que si te cuento que logro traer un dato del arreglo ...el ultimo seleccionado
  #6 (permalink)  
Antiguo 10/08/2015, 12:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar datos de CheckBox

El problema es que estás mezclando muchas cosas sin razón, ¿por que armas los datos a enviar con Javascript en lugar de usar un formulario tradicional?

Ahí radica la raíz de tus males, no es el código PHP la causa de tus problemas.

Tu error es "usar" jQuery sin saber usarlo, y creas peticiones sin sentido que tampoco respetan las normas que tu mismo has definido al recibir los datos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/08/2015, 14:58
 
Fecha de Ingreso: enero-2013
Ubicación: Puerto Montt
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Capturar datos de CheckBox

Cita:
Iniciado por pateketrueke Ver Mensaje
El problema es que estás mezclando muchas cosas sin razón, ¿por que armas los datos a enviar con Javascript en lugar de usar un formulario tradicional?

Ahí radica la raíz de tus males, no es el código PHP la causa de tus problemas.

Tu error es "usar" jQuery sin saber usarlo, y creas peticiones sin sentido que tampoco respetan las normas que tu mismo has definido al recibir los datos.
Te cuento que recibo los datos en el form, pero solo toma los valores del ultimo check, el JQUERY funciona ok, puedo imprimir los valores con un echo, pero solo me muestra el ultimo como te digo...

Saludos
  #8 (permalink)  
Antiguo 10/08/2015, 15:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar datos de CheckBox

Cita:
Te cuento que recibo los datos en el form, pero solo toma los valores del ultimo check, el JQUERY funciona ok, puedo imprimir los valores con un echo, pero solo me muestra el ultimo como te digo...
Mientras te sigas bloqueando a ti mismo de que "no hay ningún problema con jQuery" no podrás resolver tu problema.

La evidencia te la he marcado en negritas, la única razón de que te llegue el último es porque estás enviando uno-por-uno y no todos a la vez.

¿Sabe usar las herramientas de desarrollador de tu navegador?

Te invito a que inspecciones la pestaña de red cuando hagas el envío de los datos y descubrirás la verdad detrás de esa necedad tuya.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: checkbox, fecha
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 14:12.