Problemas con update


#1

Saludos a la comunidad, tengo un problema a la hora de acyualizar un
div, que es el siguiente; en mi vista tengo algo asi:

<%=check_box(‘usuario’, ‘opciones’, ‘name’=>‘chk1’,‘onclick’
=>remote_function(:update => “opcion”,:url => { :action =>
‘escojer’}))%>

y en mi controller tengo algo asi:

def escojer
render(:partial => “usuopcio”,:nothing => true)
end

el cual me funciona todo, perfecto, la pregunta es como hago para que
cuando el usuario quita la opcion del check_box, se vuelva a actualizar
el div, pero sin nada, pues lo que hace en estos momentos, es que cuando
el usuario escoje en el check_box, aparece lo que yo quiero, pero cuando
lo quita se mantiene las opciones y yo quiero es que se vuelvan a
quitar.

Alguna ayuda gracias de antemano…


#2

Juan M. wrote:

el cual me funciona todo, perfecto, la pregunta es como hago para que
cuando el usuario quita la opcion del check_box, se vuelva a actualizar
el div, pero sin nada, pues lo que hace en estos momentos, es que cuando
el usuario escoje en el check_box, aparece lo que yo quiero, pero cuando
lo quita se mantiene las opciones y yo quiero es que se vuelvan a
quitar.

Realizé los siguientes cambios:

  • Agregué :complete a remote_function.
  • En el style de div agregué display:none
  • Y en el cuerpo del div la llamada a toggle $(‘opcion’).toggle();

Al final quedó de la siguiente manera :

En la vista :

<%= javascript_include_tag "prototype" %>

<%=check_box(‘usuario’, ‘opciones’, ‘name’=>‘chk1’,
‘onclick’ => remote_function(:update => “opcion”,:url => {
:action => ‘escojer’},
:complete =>
“Element.toggle(‘opcion’)”))%>

$('opcion').toggle();

Probé con el partial _usuopcio.rhtml:

Ruby On Rails

El controlador quedó cómo tu lo tienes.

Saludos.

Jaime Mora R.


#3

Jaime Mora R. wrote:

  • Y en el cuerpo del div la llamada a toggle $(‘opcion’).toggle();

Re-factorizando un poco, no es necesario la llamada de toggle en el
cuerpo del div, la última versión de div quedó así :

Ya que es suficiente con la llamada a toggle desde :complete en
remote_function.

Saludos.

Jaime Mora R.


#4

Ya que es suficiente con la llamada a toggle desde :complete en
remote_function.

Saludos.

Jaime Mora R.

Gracias amigo por tu gran ayuda, ya funciona…