Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Inconveniente con checkbox para obtener datos relacionados

Estas en el tema de Inconveniente con checkbox para obtener datos relacionados en el foro de PHP en Foros del Web. Buenos días a todos... Estoy teniendo el siguiente inconveniente, tengo una tabla con artículos que la obtengo de un archivo txt, cuando la obtengo agrego ...
  #1 (permalink)  
Antiguo 30/10/2013, 09:35
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Inconveniente con checkbox para obtener datos relacionados

Buenos días a todos...
Estoy teniendo el siguiente inconveniente, tengo una tabla con artículos que la obtengo de un archivo txt, cuando la obtengo agrego 2 columnas una con un checkbox y otra para agregar una cantidad...
Código PHP:
<?php
    
echo "<html>
            <head> 
                <meta http-equiv='Content type' content='text/html'; charset='UTF-8'>
            </head>
            <body>
                <h1>Ejercicio 3</h1>"
;
                
$lines file ('./prueba.txt');
    echo 
"<center><form method='POST' action='cargar.php'>";
    
    echo 
"<table border='1'>
    <tr>
        <td>ID Producto</td>
        <td>Nombre</td>
        <td>Descripcion</td>
        <td>Precio</td>
        <td>Seleccion</td>
        <td>Cantidad</td>
    </tr>"
;
    
    foreach (
$lines as $line)
    {
        
$datos explode("|"$line);
       
    echo 
"<tr>
                <td><input type='hidden' name='producto[]' value='"
.$datos[0]."'>".$datos[0]."</td>
                <td><input type='hidden' name='nombre[]' value='"
.$datos[1]."'>".$datos[1]."</td>
                <td><input type='hidden' name='desc[]' value='"
.$datos[2]."'>".$datos[2]."</td>
                <td><input type='hidden' name='precio[]' value='"
.$datos[3]."'>".$datos[3]."</td>
                <td><input type='checkbox' name='seleccion[]' value=''></td>
                <td><input type='text' name='cant[]'  ></td>"
;
    }
    echo 
"</table><br>
            <input name='boton' type='submit' value='Cargar'></center>"
;
    echo 
"<br><center><a href='index.php'>volver</a></center>";
    echo 
"</body></html>";
?>
Mi inconveniente es que cuanto selecciono algún chekcbox, me lo toma pero a la hora de imprimir la linea que fue seleccionada, me muestra desde la primer linea, el código para mostrar los checks es...

Código PHP:
<?php
    $checks 
count($_POST['seleccion']);
    echo 
$checks;
    
$cant $_POST['cant'];
    
$producto $_POST['producto'];
    
$nombre $_POST['nombre'];
    
$desc $_POST['desc'];
    
$precio $_POST['precio'];
    
    if (isset(
$cant) && isset ($checks))
    {
    echo 
"<html>
            <head> 
                <meta http-equiv='Content type' content='text/html'; charset='UTF-8'>
            </head>
            <body>
                <h1 align='center'>Ejercicio 3</h1>"
;    
    echo 
"<table border='1' align='center'>
    <tr>
        <td>ID Producto</td>
        <td>Nombre</td>
        <td>Descripcion</td>
        <td>Precio</td>
        <td>Cantidad</td>
    </tr>"
;
    
            for(
$i=0;$i<$checks;$i++)
            {
                    echo 
"<tr>
                            <td>"
.$producto[$i]."</td>
                            <td>"
.$nombre[$i]."</td>
                            <td>"
.$desc[$i]."</td>
                            <td>"
.$precio[$i]."</td>
                            <td>"
.$cant[$i]."</td>";
            }
            echo 
"</table><br>";
    }
    else
    {
        echo 
"No se ha seleccionado ningun elemento";
        
header("Location: tabla.php");
    }
    echo 
"<br><center><a href='index.php'>volver</a></center>";
    echo 
"</body></html>";
?>
Desde ya muchas gracias..
  #2 (permalink)  
Antiguo 30/10/2013, 11:10
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Y si, por que estas haciendo un for de 0 a cantidad de checkbox checkeados.

for($i=0;$i<$checks;$i++)

De cualquier modo no queda del todo claro que querias hacer.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #3 (permalink)  
Antiguo 30/10/2013, 13:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Bien me explico un poco mejor en la primer imagen esta lo que obtengo con el primer codigo, es decir una tabla con una lista de productos, la tabla la armo, las primeras 4 columnas con informacion obtenida de un archivo .txt y las ultimas dos las agrego para hacer modificacion. Al seleccionar algun checkbox, como los que se ven en la imagen y ponerle un valor, deberia enviar solamente los elementos seleccionados por checkbox.



Pero me manda informacion a partir del primero, entonces si selecciono alguno articulo de la mitad de la tabla no lo muestra.



Lo que estoy tratando de lograr es, seleccionar los checkbox de los elementos que quiero agregar cantidad y al enviarlos mostrarlos en la segunda pagina como se ve en la imagen anterior.

Espero haber explicado mejor mi problema.

Saludos.
  #4 (permalink)  
Antiguo 30/10/2013, 13:57
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

ahh, ahora puede ser...


En el formulario ponele a cada checkbox un valor en value, para poder identificarlos luego.

Despues, tomas los valores seleccionados en el array $_POST['seleccion'], recorres ese array, pero no de 1 a total de elementos sino lo tenes que recorrer asi

foreach($_POST['seleccion'] as $elemento){
echo $elemento; // es el elemento que esta seleccionado con el check
}
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #5 (permalink)  
Antiguo 30/10/2013, 14:05
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

A ver si entiendo en

Código PHP:
echo "<tr>
                <td><input type='hidden' name='producto[]' value='"
.$datos[0]."'>".$datos[0]."</td>
                <td><input type='hidden' name='nombre[]' value='"
.$datos[1]."'>".$datos[1]."</td>
                <td><input type='hidden' name='desc[]' value='"
.$datos[2]."'>".$datos[2]."</td>
                <td><input type='hidden' name='precio[]' value='"
.$datos[3]."'>".$datos[3]."</td>
                <td><input type='checkbox' name='seleccion[]' value='seleccionado'></td>
                <td><input type='text' name='cant[]'  ></td>"
;
    } 
Le agrego un valor al checkbox, por ejemplo seleccionado, ahora en el foreach como hago para mostrar los datos con el $elemento?
  #6 (permalink)  
Antiguo 30/10/2013, 14:17
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

a cada checkbox le tenes que poner un valor distinto, asi lo podes identificar luego.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #7 (permalink)  
Antiguo 30/10/2013, 14:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Perdon la insistencia, como hago para asignarle un valor por cada linea al checkbox, ya que uso un solo input con checkbox y no uno por linea.
  #8 (permalink)  
Antiguo 30/10/2013, 14:55
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
De acuerdo Respuesta: Inconveniente con checkbox para obtener datos relacionados

No mi amigo, no usas un solo checkbox, usas uno por linea.

fijate que estas usando un for para crear cada linea.

podes poner un contador que incremente a inicio del for donde creas los checkboxes

$id_checkbox = 0;
foreach ($lines as $line){
$id_checkbox++;
echo "<td><input type='checkbox' name='seleccion[]' value='$id_checkbox'></td> ";

con eso tiene que andar.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #9 (permalink)  
Antiguo 30/10/2013, 15:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Perfecto, ultima pregunta como deberia armar el foreach para que muestre los valos del elemento seleccionado

Algo asi?

Código PHP:
foreach($_POST['seleccion'] as $elemento)
            {
                    echo 
"<tr>
                            <td>"
.$producto."</td>
                            <td>"
.$nombre."</td>
                            <td>"
.$desc."</td>
                            <td>"
.$precio."</td>
                            <td>"
.$cant."</td>";
            }
            echo 
"</table><br>";
    } 
  #10 (permalink)  
Antiguo 30/10/2013, 15:14
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

ahi tendrias que hacer algo para relacionar tu foreach que recorre lines con el array que vos creaste,

seria

$id_checkbox=0;
foreach($lines as $line){
$id_checkbox++;

/*
tenes que ver si el elemento que estas recorriendo esta seleccionado
usando la funcion in_array http://php.net/manual/es/function.in-array.php
*/
if( in_array($id_checkbox, $_POST['seleccion'] ) ){
/* es el seleccionado, hace lo que tengas que hacer con el*/
}
}
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #11 (permalink)  
Antiguo 30/10/2013, 15:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Lo estuve probando pero no anduvo ...

A ver si entiendo...

En el código que uso para pasar cuales son los checkbox seleccionados hago esto

Código PHP:
$id_checkbox 0;
    foreach (
$lines as $line)
    {
        
$id_checkbox++;
        
$datos explode("|"$line);
   
    echo 
"<tr>
                <td><input type='hidden' name='producto' value='"
.$datos[0]."'>".$datos[0]."</td>
                <td><input type='hidden' name='nombre' value='"
.$datos[1]."'>".$datos[1]."</td>
                <td><input type='hidden' name='desc' value='"
.$datos[2]."'>".$datos[2]."</td>
                <td><input type='hidden' name='precio' value='"
.$datos[3]."'>".$datos[3]."</td>
                <td><input type='checkbox' name='seleccion[]' value='"
.$id_checkbox."'></td>
                <td><input type='text' name='cant'  ></td>"
;
    } 
Y el codigo que recibe tendria que hacer algo asi?

Código PHP:
foreach($_POST['seleccion'] as $elemento)
            {    
                if( 
in_array($id_checkbox$_POST['seleccion'] ) ){
                    echo 
"<tr>
                            <td>"
.$producto."</td>
                            <td>"
.$nombre."</td>
                            <td>"
.$desc."</td>
                            <td>"
.$precio."</td>
                            <td>"
.$cant."</td>";
                }    
            } 
Lo estuve probando pero la variable $id_checkbox me dice que no tiene index.

Disculpa tantas preguntas, pero todavía sigo aprendiendo este lenguaje y por ahí me cuesta...
  #12 (permalink)  
Antiguo 30/10/2013, 15:45
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Estas mezclando las cosas, el codigo que te pase es para ver que checkbox fueron seleccionados y la relacion con la lineas del archivo, pero todo eso lo verificas cuando el formulario se envia.

o sea, tenes que recorrer de nuevo $lines y ver si la linea fue marcada, todo con el codigo que te di.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #13 (permalink)  
Antiguo 30/10/2013, 16:07
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Anduvo a la perfección...
El codigo me quedo así:



Un ultimo detalle ahora no envía la variable $cant, que es lo que debería pasar si el checkbox esta activado.
  #14 (permalink)  
Antiguo 30/10/2013, 16:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Perdón el código me quedo:

Código PHP:
$id_checkbox 0;
            foreach(
$lines as $line)
            {    
                
$id_checkbox++;
                
$datos explode("|"$line);
                if( 
in_array($id_checkbox$_POST['seleccion'] ) )
                {
                echo 
"<tr>
                        <td>$datos[0]</td>
                        <td>$datos[1]</td>
                        <td>$datos[2]</td>
                        <td>$datos[3]</td>
                        <td>"
.$cant."</td>
                        </tr>"
;
                }
            } 
La ultima variable $cant es la que no me esta trayendo.
  #15 (permalink)  
Antiguo 30/10/2013, 16:30
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

tenes 2 problemas con cant:
1. en cada linea usaste la misma variable cant, te va a tomar solo 1 asi, agregale al nombre 'cant_'$id_checkbox en el formulario.

2. tenes que levantar la variable recibida en Post, tal cual como la enviaste x nombre 'cant_'$id_checkbox
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #16 (permalink)  
Antiguo 30/10/2013, 17:00
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Bien trate de hacer lo que me dijiste pero me larga un erro.

Parse error: syntax error, unexpected '$id_checkbox' (T_VARIABLE), expecting ']'

Supongo es porque estoy definiendo mal el post, lo estoy haciendo asi:

$_POST['cant_'$id_checkbox];

No encuentro forma de meter la variable que me dijiste en el POST.
  #17 (permalink)  
Antiguo 30/10/2013, 20:12
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

la variable que le pasa a POST es un string, por lo tanto podes hacen una concatenacion para obtener el string.

'cant_' . $id_checkbox
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #18 (permalink)  
Antiguo 30/10/2013, 22:40
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Bueno despues de varios intentos no logro hacer andar lo que me paseste, como lo estoy tratando de hacer andar es en el form,

<input type='text' name='cant_'$id_checkbox>

y para recibir,

$cant = $_POST['cant'.$id_checkbox];

Pero no me trae nada, es mas me sigue dando el notice de index no definido.

Muchas gracias por toda la ayuda.
  #19 (permalink)  
Antiguo 31/10/2013, 02:58
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Hace 2 cosas más:

1. mira con que nombre se genero los campos cant_x del formularios, tenes que mirar el codigo fuente generado en el navegador.
2. mira que datos estas recibiendo por $_POST, eso lo haces con
print_r( $_POST );
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #20 (permalink)  
Antiguo 31/10/2013, 05:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Buenass, hice lo que me dijiste esto son los valores que obtengo:

Los campos cant_x se generan así:

Código PHP:
<td><input type='text' name='cant_'27></td></tr><tr
Y el $_POST me muestra lo siguiente:

Notice: Undefined variable: id_checkbox in /var/www/programacion1/TP3/ejercicio3/cargar.php on line 3
Array ( [cant_] => [seleccion] => Array ( [0] => 28 ) [boton] => Cargar )
  #21 (permalink)  
Antiguo 31/10/2013, 05:37
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Ahora se entiende mas.

el nombre generado para el campo te deberia quedar
<input type='text' name='cant_27'>

o sea el 27 dentro de las comillas.

y estas recibiendo un 28, fijate como estan inicializados los contadores

y tambien fijate por que la variable id_checkbox da error, debe ser x q no esta declarada.

puntos?
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #22 (permalink)  
Antiguo 31/10/2013, 06:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Bien ya corregi los problemas anteriores, ya no larga el notice, esto es lo que obtengo ahora:

Código PHP:
Array
(
    [
cant_1] => 
    [
cant_2] => 
    [
cant_3] => 
    [
cant_4] => 
    [
cant_5] => 
    [
cant_6] => 
    [
cant_7] => 
    [
cant_8] => 
    [
cant_9] => 
    [
cant_10] => 
    [
cant_11] => 
    [
cant_12] => 
    [
cant_13] => 
    [
cant_14] => 
    [
cant_15] => 
    [
cant_16] => 
    [
cant_17] => 
    [
cant_18] => 
    [
cant_19] => 
    [
cant_20] => 
    [
cant_21] => 
    [
cant_22] => 
    [
cant_23] => 
    [
cant_24] => 
    [
cant_25] => 
    [
cant_26] => 
    [
cant_27] => 
    [
cant_28] => 
    [
cant_29] => 
    [
seleccion] => Array
        (
            [
0] => 30
        
)

    [
cant_30] => 4
    
[cant_31] => 
    [
cant_32] => 
    [
cant_33] => 
    [
cant_34] => 
    [
cant_35] => 
    [
boton] => Cargar

Pero en el lugar donde debería imprimir la variable aparece en blanco,

Código PHP:
$id_checkbox 0;
            foreach(
$lines as $line)
            {    
                
$id_checkbox++;
                
$datos explode("|"$line);
                if( 
in_array($id_checkbox$seleccion ) )
                {
                    echo 
"<tr>
                        <td>$datos[0]</td>
                        <td>$datos[1]</td>
                        <td>$datos[2]</td>
                        <td>$datos[3]</td>
                        <td>"
.$cant_carga." hola</td>
                    </tr>"
;
                }
            } 
Y lo que obtengo en el navegador es:

Código HTML:
</tr><tr>
						<td>32</td>
						<td>r</td>
						<td>r</td>
						<td>2
</td>
						<td> hola</td> 
El hola que acompaña a la variable aparece, pero no el valor que esta asignado en el array de arriba.
  #23 (permalink)  
Antiguo 31/10/2013, 07:37
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Lo estas haciendo mal,

tenés que levantar la variable de POST con $_POST['cant'.$id_checkbox]
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #24 (permalink)  
Antiguo 31/10/2013, 09:11
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Bien con levantar la variable a que te referis??

Lo que estoy haciendo en el formulario tengo la variable asi:

Código HTML:
<input type='text' name='cant_".$id_checkbox."'> 
y en donde tengo que obtener asi:

primero defino una variable como:

Código PHP:
$cant_carga = isset($_POST['cant_'.'$id_checkbox']); 
Despues uso esa misma variable para tratar de mostrar:

Código PHP:
$id_checkbox 0;
            foreach(
$lines as $line)
            {    
                
$id_checkbox++;
                
$datos explode("|"$line);
                if( 
in_array($id_checkbox$seleccion ) )
                {
                    echo 
"<tr>
                        <td>$datos[0]</td>
                        <td>$datos[1]</td>
                        <td>$datos[2]</td>
                        <td>$datos[3]</td>
                        <td>"
.$cant_carga." hola</td>
                    </tr>"
;
                }
            }
            echo 
"</table><br>"
El tema es que si la pongo como vos decis $_POST['cant_'.$id_checkbox] y no asi isset($_POST['cant_'.'$id_checkbox']) me larga el notice de index no definido.

No se donde estare haciendo mal el llamado a la variable, puede ser que es porque el for(lines) levanta los datos desde un txt??
  #25 (permalink)  
Antiguo 31/10/2013, 12:10
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Si lo pone asi

Código PHP:
$cant_carga = isset($_POST['cant_'.'$id_checkbox']); 
$cant_carga puede valer true o false nomas

fijate que podes hacerlo de este modo

Código PHP:
$_POST["cant_$id_checkbox"
tiene que existir, por que cuando vos haces print_r de $_POST te trae

Código PHP:
Array
(
    [
cant_1] => 
    [
cant_2] => 
    [
cant_3] => 
    [
cant_4] => 
    [
cant_5] => 
    [
cant_6] => 
    [
cant_7] => 
    [
cant_8] => 
    [
cant_9] => 
    [
cant_10] => 
    [
cant_11] => 
    [
cant_12] => 
    [
cant_13] => 
    [
cant_14] => 
    [
cant_15] => 
    [
cant_16] => 
    [
cant_17] => 
    [
cant_18] => 
    [
cant_19] => 
    [
cant_20] => 
    [
cant_21] => 
    [
cant_22] => 
    [
cant_23] => 
    [
cant_24] => 
    [
cant_25] => 
    [
cant_26] => 
    [
cant_27] => 
    [
cant_28] => 
    [
cant_29] => 
    [
seleccion] => Array
        (
            [
0] => 30
        
)

    [
cant_30] => 4
    
[cant_31] => 
    [
cant_32] => 
    [
cant_33] => 
    [
cant_34] => 
    [
cant_35] => 
    [
boton] => Cargar

o sea, cant_ de 1 a 35
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #26 (permalink)  
Antiguo 31/10/2013, 13:51
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Gerardo haciendo lo que me dijiste obtengo esto...

Código HTML:
<br />
<b>Notice</b>:  Undefined variable: id_checkbox in <b>/var/www/programacion1/TP3/ejercicio3/cargar.php</b> on line <b>3</b><br />
<br />
<b>Notice</b>:  Undefined index: cant_ in <b>/var/www/programacion1/TP3/ejercicio3/cargar.php</b> on line <b>3</b><br />
Array
(
    [cant_1] => 
    [cant_2] => 
    [cant_3] => 
    [cant_4] => 
    [cant_5] => 
    [cant_6] => 
    [seleccion] => Array
        (
            [0] => 7
        )

    [cant_7] => 4
    [cant_8] => 
    [cant_9] => 
    [cant_10] => 
    [cant_11] => 
    [cant_12] => 
    [cant_13] => 
    [cant_14] => 
    [cant_15] => 
    [cant_16] => 
    [cant_17] => 
    [cant_18] => 
    [cant_19] => 
    [cant_20] => 
    [cant_21] => 
    [cant_22] => 
    [cant_23] => 
    [cant_24] => 
    [cant_25] => 
    [cant_26] => 
    [cant_27] => 
    [cant_28] => 
    [cant_29] => 
    [cant_30] => 
    [cant_31] => 
    [cant_32] => 
    [cant_33] => 
    [cant_34] => 
    [cant_35] => 
    [boton] => Cargar
)
Puse $_POST["cant_$id_checkbox"] tanto en el formulario como en la parte de levantar la variable.
  #27 (permalink)  
Antiguo 31/10/2013, 13:54
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 10 meses
Puntos: 14
Respuesta: Inconveniente con checkbox para obtener datos relacionados

cual es tu codigo?
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #28 (permalink)  
Antiguo 31/10/2013, 14:12
 
Fecha de Ingreso: agosto-2009
Mensajes: 73
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Inconveniente con checkbox para obtener datos relacionados

Para pasar los check con la cantidad es:

Código PHP:
<?php
$lines 
file ('./prueba.txt');
    echo 
"<html>
            <head> 
                <meta http-equiv='Content type' content='text/html'; charset='UTF-8'>
            </head>
            <body>
                <h1 align='center'>Ejercicio 3</h1>"
;
                
    echo 
"<center><form method='POST' action='cargar.php'>";
    
    echo 
"<table border='1'>
    <tr>
        <td>ID Producto</td>
        <td>Nombre</td>
        <td>Descripcion</td>
        <td>Precio</td>
        <td>Seleccion</td>
        <td>Cantidad</td>
    </tr>"
;
    
$id_checkbox 0;
    foreach (
$lines as $line)
    {
        
$id_checkbox++;
        
$datos explode("|"$line);
   
    echo 
"<tr>
                <td>$datos[0]</td>
                <td>$datos[1]</td>
                <td>$datos[2]</td>
                <td>$datos[3]</td>
                <td><input type='checkbox' name='seleccion[]' value='"
.$id_checkbox."'></td>
                <td><input type='text' name='cant_$id_checkbox'></td>
        </tr>"
;
    }
    echo 
"</table><br>
            <input name='boton' type='submit' value='Cargar'></center>"
;
    echo 
"<br><center><a href='index.php'>volver</a></center>";
    echo 
"</body></html>";
?>
Para recibir:

Código PHP:
<?php
$cant_carga 
$_POST["cant_$id_checkbox"];

    
print_r($_POST);
    
$seleccion $_POST['seleccion'];
    
$lines file ('./prueba.txt');
    
    if (isset (
$seleccion))
    {
    echo 
"<html>
            <head> 
                <meta http-equiv='Content type' content='text/html'; charset='UTF-8'>
            </head>
            <body>
                <h1 align='center'>Ejercicio 3</h1>"
;    
    echo 
"<table border='1' align='center'>
    <tr>
        <td>ID Producto</td>
        <td>Nombre</td>
        <td>Descripcion</td>
        <td>Precio</td>
        <td>Cantidad</td>
    </tr>"
;
            
$id_checkbox 0;
            foreach(
$lines as $line)
            {    
                
$id_checkbox++;
                
$datos explode("|"$line);
                if( 
in_array($id_checkbox$seleccion ) )
                {
                    echo 
"<tr>
                        <td>$datos[0]</td>
                        <td>$datos[1]</td>
                        <td>$datos[2]</td>
                        <td>$datos[3]</td>
                        <td>"
.$cant_carga." hola</td>
                    </tr>"
;
                }
            }
            echo 
"</table><br>";
    }
    else
    {
        echo 
"No se ha seleccionado ningun elemento";
        
header("Location: tabla.php");
    }
    echo 
"<br><center><a href='index.php'>volver</a></center>";
    echo 
"</body></html>";
?>

Etiquetas: checkbox, html, inconveniente, relacionados, tabla
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:28.