[Ror-es] Perdido con Ajax (Copiar valor de un select a un campo de texto)

Damian Janowski damian.janowski at gmail.com
Mon Aug 7 18:09:50 GMT 2006


De nada ;)

On 8/7/06, Pedro Marín <pmarinr at gmail.com> wrote:
> Gracias!!!!
>
> Esto es exactamente lo buscaba. No he visto mucho código Rails y aún
> programo a lo PHP.
>
>
> 2006/8/7, Damian Janowski < damian.janowski at gmail.com>:
> > Hola Pedro, te paso una versión un poco más a la Rails, la probé
> > rápidamente, pero quizás alguien con más tiempo en esto te la pueda
> > mejorar.
> > Una restricción: cuando hacés <%= text_select_field('proyecto',
> > 'cargo') %>, tienes que tener una variable @proyecto que no puede ser
> > nula (esto lo digo por cómo implementé el object.class.find) De todas
> > maneras, si seguís la línea de scaffold, el método new del controlador
> > crea un objeto vacío para usar estos helpers..
> >
> > saludos!
> >
> >         def text_select_field(object_name, method)
> >                 # Creamos una lista de los distintos datos de la tabla (
> P.E. cargos
> > que ocupan los empleados )
> >                 object = instance_variable_get('@' + object_name)
> >
> >                 listado = object.class.find(:all, :select => "DISTINCT
> #{method}",
> > :order => method).collect { |p| [p.send(method), p.send(method)] }
> >
> >                 result = ''
> >
> >                 result << text_field(object_name, method)
> >
> >                 result <<
> select_tag("selector_#{method}",
> > options_for_select(listado, object.send(method)), :onchange =>
> > "$(#{object_name}_#{method}).value =
> $(selector_#{method}).value")
> >         end
> >
> >
> > On 8/7/06, Pedro Marín <pmarinr at gmail.com> wrote:
> > > Le he dado una vuelta de tuerca mas y jugueteando me he creado un
> helper.
> > >
> > > A ver si podéis echarle un vistazo y comentarme si esta bien o si se
> puede
> > > optimizar algo.
> > >
> > > #----------  HELPER PARA CREAR UN CAMPO DE TEXTO Y UN SELECT ASOCIADO A
> EL
> > > ----------
> > > # Le pasamos el nombre de la tabla y del campo que queremos listar.
> > > #También le pasamos el objeto que usa Rails para gestionar esa tabla
> > >
> > >
> > > def text_select_field(tabla,campo,objeto)
> > > #Creamos una lista de los distintos datos de la tabla ( P.E. cargos que
> > > ocupan los empleados )
> > > listado = objeto.find_by_sql("SELECT DISTINCT #{ campo.to_s} FROM
> > > #{tabla.to_s}s ORDER BY #{campo.to_s}").collect {|p| [  p[campo],
> p[campo] ]
> > > }
> > >
> > > result = text_field tabla,campo
> > >
> > > result +="<select id='selector_#{ campo.to_s}'
> name='selector_#{campo.to_s}'
> > > onchange='$(#{tabla.to_s}_#{campo.to_s}).value =
> > > $(selector_#{campo.to_s}).value'>"
> > >
> > > for item in listado
> > >    result +="<option
> > > value='"+item[0]+"'>"+item[1]+"</option>\n"
> > > end
> > >
> > > result +="</select>"
> > >
> > > end
> > >
> > >
> #------------------------------------------------------------------------------------------------
> > >
> > > Lo he metido en el archivo application_helper.rb
> > >
> > > Ahora solo tengo que llamarlo de esta forma:
> > >
> > > <%=text_select_field 'proyecto', 'tipo',Proyecto %>
> > >
> > > Espero que os sea de utilidad .
> > > Saludos.
> > >
> > >
> > > --
> > > Pedro Marín
> > > _______________________________________________
> > > Ror-es mailing list
> > > Ror-es at lists.simplelogica.net
> > > http://lists.simplelogica.net/mailman/listinfo/ror-es
> > >
> > >
> > >
> >
> >
> > --
> > Damian Janowski
> > damian.janowski at gmail.com
> > _______________________________________________
> > Ror-es mailing list
> > Ror-es at lists.simplelogica.net
> > http://lists.simplelogica.net/mailman/listinfo/ror-es
> >
>
>
>
> --
> Pedro Marín
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
>
>


-- 
Damian Janowski
damian.janowski at gmail.com


More information about the Ror-es mailing list