Leer un array de checkbox desde un action

1,134 views
Skip to first unread message

Rober_Toto

unread,
Feb 18, 2011, 9:02:48 AM2/18/11
to symfony-es
Hola, tengo esto en una página:

<?php echo jq_form_remote_tag(array('update' => 'contenido',
'url'
=> 'mi_modulo/lee_candidatos'
)) ?>
<table>
<tr>
<?php foreach($candidatosEncontrados as $candidatosEncontrados) { ?
>
<td><?php echo $candidatosEncontrados->getNombre(); ?></td>
<td><input type="checkbox" name="usuariosSeleccionados[]"
id="usuariosSeleccionados" value="<?php echo $candidatosEncontrados-
>getId(); ?>" /></td>
</tr>
<?php }?>
</table>

<input type="submit" value="Enviar Datos"/>
</form>

Eso lleva los datos del form a la accion:
public function executeLee_candidatos(sfWebRequest $request){
$this->idsUsuarios = $request-
>getParameter('usuariosSeleccionados');
echo $request->getParameter('usuariosSeleccionados');
}

Cómo puedo en la acción recorrer el array de checkboxs que se genera
en el foreach, para sacar todas las id que trae ese array?

Roberto Rivera

unread,
Feb 20, 2011, 7:58:55 PM2/20/11
to symfony-es
Parece que era bien sencillo, la respuesta es poner en el template (pagina.php):


<input type="checkbox" value="1" name="my_checkbox[]">
<input type="checkbox" value="2" name="my_checkbox[]">
<input type="checkbox" value="3" name="my_checkbox[]">
Esto deja todo en un array (al enviarlo desde un form), y para recorrerlo desde un action de symfony:



$arr = $request->getParameter('my_checkbox');

foreatch($arr as $arr){

  echo $arr;

}
Espero le sirva a alguien más con el mismo problema.
Saludos.
                           _______________________________     
                                    Roberto Rivera Mardones
                                       Ingeniero Informático
                                         (09) - 7 80 88 138
                                                Santiago

                           ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯



--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.


Martin Ibarra Cervantes

unread,
Apr 7, 2011, 1:28:00 AM4/7/11
to symfo...@googlegroups.com, Roberto Rivera
Saludos Roberto, yo tengo un porblema similar ya que no puedo ler los checkbox que estan seleccionados, desde mi Form los genero
ya le intente con

 foreach( $form->getValues('cabello') as $p ):

y con

$c = $request->getParameter('cabello)

foreach($c as $p)

pero no logro obtener los que estan seleccionados, estoy usando symfony 1.4 , que version usaste tu ??

.


Este es el email que envie a la lista.


Saludos tengo un problema al manipular los checkbox de mi form, tengo en mi forma esto lo cual me genera checkbox con los datos del array de abajo.


  'cabello'  => new sfWidgetFormChoice(array('
choices' => $this->getCabello(), 'multiple' =>  true, 'expanded' => true)),           

  static public $cabello = array(     
      'Negro' => 'Negro',
      'Castaño' => 'Castaño',
      'Rubio' =>  'Rubio',
      'Rojo' => 'Rojo'        
  );

Necesito obtener los valores de los checkbox que hayan sido seleccionados en mi action ya le he dado vueltas pero no logro obtener los valores que son seleccionados

trate con esto

 foreach( $form->getValues('cabello') as $p ):
       
        sfContext::getInstance()->getLogger()->err('datos-----------> ' .  $p);

        endforeach;

Pero el resultado es array mas no los checkbox que han sido seleccionados.

Alguna idea ?

Saludos.





2011/2/20 Roberto Rivera <tot...@gmail.com>

Roberto Rivera

unread,
Apr 7, 2011, 8:07:23 AM4/7/11
to Martin Ibarra Cervantes, symfo...@googlegroups.com
Bueno estimado, te cuento que yo usé un formulario hecho a mano, esa es la primera y más notoria diferencia, pero me imagino que si finalmente symfony genera automáticamente todos los tags, hacer un $request->getParameter('cabello);  (recuerda el ";" al final) no debería ser complicado, primero yo pensaba que tenía que hacer algo especial para enviar mediante formulario POST los checkbox seleccionados, pero grata sorpresa me llevé cuando me di cuenta que cuando enviaba el formulario con N checkbox algunos seleccionados, otros no, pero todos con el mismo parámetro "name", desde el action sólo hacía un:

    $this->miDato = $request->getParameter('mi_dato');

    foreach ($this->miDato as $mi_dato){
      echo $mi_dato;
    }

Y con eso bastaba, pues automáticamente la variable miDato recibía sólo los valores "checked" de los checkbox. Cómo lo hace? ni idea... sólo sé que lo hace.

Espero poder aclararte algo, sigue comentando haber si te resulta ;-)
Saludos
                           _______________________________     
                                    Roberto Rivera Mardones
                                       Ingeniero Informático
                                         (09) - 7 80 88 138
                                                Santiago

                           ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Karina Mazon

unread,
Oct 23, 2014, 4:06:06 PM10/23/14
to symfo...@googlegroups.com, tot...@gmail.com


Hola Roberto si fueras tan amable de pegar el codigo de como envias la lista de chekbox al controlador porque estoy tratando de hacerlo y me sale siempre este mensaje

Controller "tesis\tesisBundle\Controller\TareaController::llamarAction" for URI "/tarea/llamar" is not callable.

He realizado lo que has expuesto en este blog pero no me funciona ayudame por favor pegando el codigo.

Gracias de antemano desde Ecuador

Reply all
Reply to author
Forward
0 new messages