Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Problema al sumar datos de un form 'choice' (coge el indice y no el dato)

Estas en el tema de Problema al sumar datos de un form 'choice' (coge el indice y no el dato) en el foro de Symfony en Foros del Web. Vereis. estoy haciendo un test y necesito operar con los datos que el usuario introduce en un formulario pero no registrarlos en una base de ...
  #1 (permalink)  
Antiguo 27/05/2013, 13:19
 
Fecha de Ingreso: diciembre-2011
Mensajes: 134
Antigüedad: 12 años, 3 meses
Puntos: 5
Problema al sumar datos de un form 'choice' (coge el indice y no el dato)

Vereis. estoy haciendo un test y necesito operar con los datos que el usuario introduce en un formulario pero no registrarlos en una base de datos.


Lo he estado haciendo con el form type "integer" y sin problema. yo incluia dato1 200 y dato2 300 , hacia la suma en el controlador y luego en la vista mostraba 500 sin ningun problema .

como no quiero dejar al usuario que toquetee lo que no debe he decidido hacer el test mediante combos y para eso uso los forms type "choice".

cual es ha sido mi sorpresa al ver que no salia bien, ya que no suma el valor del combo, suma el indice de ese dato elegido (indice del array) .


no he leido el api porque lo lei hace 4 o 5 dias y no recuerdo haber visto nada de esto, llevo todo el dia programando y no tengo la mente fina . ¿a alguien se le ocurre una solucion ?


os pongo el codigo un poco resumido. si hace falta pongo la funcion completa.


Código PHP:

        $form 
$this->createFormBuilder()

      
            ->
add('dato1''choice', array(
                
'choices' => range(40,200),
                
'expanded' => false,
                
'multiple' => false,
                ))
            
            ->
add('dato2''choice', array(
                
'choices' => range(145,200),
                
'expanded' => false,
                
'multiple' => false,
                ))          
            ->
getForm();

            
        
/*********************************************/
       
if ($request->isMethod('POST')) {
                
$form->bind($request);

                
$data $form->getData();


                   
$resultado["prueba"] = "holaa mundo";
                   
$resultado["suma"] = ($data["dato1"]+$data["dato2"]);

                return 
$this->render(
                    
'OtrosBundle:Default:test.html.twig',
                    array(
'resultado' => $resultado)
                );

            } 



gracias. desconecto un rato que ya veo doble.
  #2 (permalink)  
Antiguo 28/05/2013, 00:08
 
Fecha de Ingreso: diciembre-2011
Mensajes: 134
Antigüedad: 12 años, 3 meses
Puntos: 5
Respuesta: Problema al sumar datos de un form 'choice' (coge el indice y no el dato)

al final no era un problema de symfony sinio mas bien de php.

os pongo una solucion por si alguien se encuentra en mi mismo caso.


->add('peso', 'choice', array(
'choices' => array_combine(range(40, 200), range(40, 200)),
'expanded' => false,
'multiple' => false,
))

con la funcion array combine puedes crear un array combinando otros array para crear la clave y el dato. asi que el en lugar de tener indice 0 = 40. tendremos indice 40 = 40.

conclusion, que con array_combine ya funcionaria.

saludos si alguien con mi mismo problema me lee tiempo despues.

Etiquetas: form, indice
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 12:45.