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

Pedro Marín pmarinr at gmail.com
Mon Aug 7 18:06:03 GMT 2006


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20060807/8743a936/attachment-0001.htm 


More information about the Ror-es mailing list