Rescatar varios checkbox desde un form

Joel A. Iturra iturrajoel en optonline.net
Jue Ene 8 15:13:05 CLST 2004


El nombre del CHECKBOX debe ser algo como

nombre[]

luego el PHP maneja como arreglo

foreach ( $_REQUEST['nombre'] AS $arreglo )
{
  blahblahblah
}

José Miguel Vidal Lavín wrote:

> ok, claro con eso, por eso consulto como hacer para rescatar n 
> checkbox sin saber la cantidad
> creo que ahi ya ando mas claro para preguntar jajaja ;)
>
> gracias de antemano
>
> Mauro A. Morales M. wrote:
>
>> Creo que no lo tienes claro.
>>
>> Si tus checkbox tienen el mismo nombre, entonces cuando leas el valor de
>> ese nombre te entregara _UN_ solo valor. El valor del checkbox que esta
>> en checked.
>>
>> Para que tengas varios valores tienes que asignarles distintos nombres.
>>
>> El jue, 08-01-2004 a las 16:27, José Miguel Vidal Lavín escribió:
>>  
>>
>>> eso me queda claro pero cuando tengo muchos chekbox con el mismo 
>>> nombre no se me devuelve como un arreglo?
>>> lo que pasa es que el código HTML lo genero leyendo datos desde una 
>>> DB:
>>>
>>>
>>>    while ($row = mysql_fetch_array($result))
>>>    {
>>>        print( "<tr>\n" );
>>>        print( "<input name='num_operacion' type='Hidden' 
>>> value=$row[0]>" );            print( "<td bgcolor = " . $color . 
>>> "><font size=2><input name='factura' type='Checkbox' 
>>> value=$row[0]></td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>" . $row[0] 
>>> . "</td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>" . $row[1] 
>>> . "</td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>" . $row[2] 
>>> . "</td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>" . $row[3] 
>>> . "</td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>" . $row[4] 
>>> . "</td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>" . $row[5] 
>>> . "</td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>$" . 
>>> number_format($row[6], 0, '.', ',') . "</td>\n" );
>>>        print( "<td bgcolor = " . $color . "><font size=2>" . $row[7] 
>>> . "</td>\n" );
>>>        print( "</tr>\n" );
>>>     }
>>>
>>> entonces no podré leer desde el otro lado n checkbox, es ese el 
>>> problema.
>>>
>>> gracias
>>>
>>> Mauro A. Morales M. wrote:
>>>
>>>   
>>>
>>>> Si la seleccion de los checkbox es _unica_ entonces los checkbox deben
>>>> llevar el mismo nombre con distintos values.
>>>>
>>>> Si la selccion es multiple entonces llevan distintos nombres con
>>>> disintos values.
>>>>
>>>> EJ:
>>>>
>>>> <input type=checkbox name=check1 value=0>
>>>> <input type=checkbox name=check1 value=1>
>>>>
>>>> Asi cuando eligas, solo te va a permitir eligir 1.
>>>>
>>>> Desdel el PHP que recibe el valor, $unico = $_POST['check1']
>>>>
>>>> Para el segundo caso, EJ:
>>>>
>>>> <input type=checkbox name=check1 value=0>
>>>> <input type=checkbox name=check2 value=1>
>>>>
>>>> Asi, te permitira elegir los dos, si es el caso.
>>>>
>>>> Desdel el PHP que recibe el valor;
>>>> $primero = $_POST['check1']
>>>> $ segundo = $_POST['check2']
>>>>
>>>> Saludos,
>>>>
>>>>
>>>>
>>>>
>>>> El jue, 08-01-2004 a las 15:35, José Miguel Vidal Lavín 
>>>> escribió:
>>>>
>>>>
>>>>     
>>>>
>>>>> Señores
>>>>>
>>>>>   Hago mi primer participación en este mailing list que ha 
>>>>> estado un poco lento en movimientos asi que aprovecho de pedirles 
>>>>> su ayuda en un problema muy trivial que tengo pero que no he 
>>>>> podido resolver.
>>>>> No me habia tocado el caso actual ni tanpoco tengo mucha 
>>>>> experiencia en php, el problema es el siguiente:
>>>>>
>>>>> tengo generado un formulario con varios chekbox que debo 
>>>>> seleccionar para realizar operaciones a solo los registros que el 
>>>>> usuario ha marcado, mando la información via POST y no se 
>>>>> recuperar cuales checkbox fueron los seleccionados ni con que 
>>>>> valor fueron enviados, alguien me puede orientar?, si necesitan 
>>>>> mas información sobre mi problema se los enviaré.
>>>>>
>>>>> saludos y gracias de antemano.
>>>>>  
>>>>>       
>>>>
>