Foros del Web » Programando para Internet » PHP »

Selección de múltiples checkbox

Estas en el tema de Selección de múltiples checkbox en el foro de PHP en Foros del Web. Hola chicos y chicas de forosdelweb, tengo una duda respecto a la selección de varios checkbox los cuales al ser seleccionados tienen que almacenar datos, ...
  #1 (permalink)  
Antiguo 09/03/2010, 14:46
 
Fecha de Ingreso: enero-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Busqueda Selección de múltiples checkbox

Hola chicos y chicas de forosdelweb, tengo una duda respecto a la selección de varios checkbox los cuales al ser seleccionados tienen que almacenar datos, bueno, el siguiente código me desplega algunos datos de una BD, la tabla puede ser desde 1 hasta n líneas dependiendo en este caso de cuántas ordenes de compra sean iguales.


Código PHP:
$table="
        <table> 
        <tr class=imselected>
        <th class=imselected>Recibido</th>           
        <th class=imselected>Pedido</th>
        <th class=imselected>Correlativo</th>
        <th class=imselected>Descripción</th>
        <th class=imselected>ODC</th>
        <th class=imselected>Fecha Entrega</th>
        </tr>        
"
;

echo
"<br>Pedido: $pedido<br>";
foreach (
$result as $v1){       
        
$table .= "<tr><td valign=top>&nbsp;&nbsp;&nbsp;<input type=checkbox></td>";        
        
$table .= "<td valign=top>".$v1["pedido"]."</td>
         <td valign=top>"
.$v1["corre"]."</td>        
         <td valign=top>"
.$v1["descripcio"]."</td>
         <td valign=top>"
.$v1["noodc"]."</td>
         <td valign=top>"
.$v1["fecha_entr"]."</td>";    
        
$table .="</tr>";                     
}
$table .="<tr><td valign=top><input type=\"submit\" name=\"guardar\" value=\"Guardar\"></td></tr></form>";
$table .= "</table>";
echo 
$table

La cuestión es que no se cómo guardar los campos seleccionados en la tabla, pensé en ponerle nombre a cada checkbox, pero como el despliegue de datos es variable no se en ese caso como cambiar el nombre a cada checkbox para después almacenar solo los que se hayan seleccionado.

De antemano muchas gracias por sus atribuciones.
  #2 (permalink)  
Antiguo 09/03/2010, 14:54
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Selección de múltiples checkbox

La cuestión está en la propiedad HTML "value"
  #3 (permalink)  
Antiguo 09/03/2010, 14:57
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Selección de múltiples checkbox

te recomiendo que pongas el nombre con corchetes para que pases los valores como array, algo asi:

<input type="checkbox" name="check[]" value="<?php valor; ?>" />

y los recoges por $_POST['check'] y para recuperar los valores debes recorrerlos con un for algo asi por ejemplo:

Código PHP:
for( $i 0$i count($_POST['check']); $i ++){
        
$valor=explode(',',$_POST['check'][$i]);
                                echo 
$valor[0].'<br>';

__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 10/03/2010, 16:56
 
Fecha de Ingreso: enero-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Selección de múltiples checkbox

Muchas gracias chicos por sus respuestas.

Aunque... no me sale, ok, probé lo que me dijo cesarpunk, pero nada, estoy viendo manuales para ver si sale la duda, el chiste es que lo último que tengo es...


Código PHP:
$table="</form name=\"tabla\">
        <table> 
        <tr class=imselected>
        <th class=imselected>Recibido</th>           
        <th class=imselected>Pedido</th>
        <th class=imselected>Correlativo</th>
        <th class=imselected>Descripción</th>
        <th class=imselected>ODC</th>
        <th class=imselected>Fecha Entrega</th>
        </tr>        
"
;

foreach (
$result as $v1){       
        
$table .= "<tr><td valign=top>&nbsp;&nbsp;&nbsp;<input type=\"checkbox\" name='check[]' value=\"$valor\"></td>";        
        
$table .= "<td valign=top>".$v1["pedido"]."</td>
         <td valign=top>"
.$v1["corre"]."</td>        
         <td valign=top>"
.$v1["descripcio"]."</td>
         <td valign=top>"
.$v1["noodc"]."</td>
         <td valign=top>"
.$v1["fecha_entr"]."</td>";    
        
$table .="</tr>";                     
}
$table .="<tr><td valign=top><input type=\"submit\" name=\"guardar\" value=\"Guardar\"></td></tr>";
$table .= "</table></form>";

echo
"<br>VarDump: ";
var_dump($_POST);

echo 
$table;    
if(isset(
$_GET["guardar"])){
    if(
count($_GET["check"]==0)){
        echo 
"<script type=\"text/javascript\">alert(\"Seleccione al menos una ODC\");</script>";       
    }
    else
        for(
$i=0$i count($_GET["check"]); $i++){
            
$valor=explode(","$_GET["check"][$i]);
            echo 
$valor[0].'<br>';
        }

En value le puse una variable en php, no creí necesario abrir "<?php ?>" ya que no está dentro de html, no se si esté correcto.
También al momento de presionar el submit no hace nada.

De nuevo gracias por sus comentarios y aportaciones

Etiquetas: 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 23:56.