Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2013, 13:19
amadeo123
 
Fecha de Ingreso: diciembre-2011
Mensajes: 134
Antigüedad: 12 años, 4 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.