Mam nastepujacy kod:
<%= select ( :task, "value",
[ [1,1], [3,3], [5,5], [10,10] ],
options = { },
html_options = { :id => "select_#{task.dom_id}", :onChange => remote_function(
:url => { :action => :update,
:id => task.id,
:value => ???
} ) } ) %>
Zastanawiam sie jak ustalic :value => ??
Dzieki za sugestie
Pozdrawiam
Lukasz
Obok :url, dorzuć do remote_function
:with => "'value=' + encodeURIComponent( value )"
Strasznie to skomplikowane - tak naprawdę lepiej byłoby pomyśleć jak to zrobić prościej. Nie wiem dokładnie, w jakim to jest kontekście, ale tego typu rzeczy robi się raczej przez observe_field. Zostawiasz selecta w spokoju (bez żadnej obsługi onchange), a później dajesz:
<%= observe_field "id_obserwowanego_pola", :url => { :action=> 'update' } %>
Nowa wartość pola zostanie automatycznie wysłana jako parametr.
Okey dzieki wielkie 
Co do observera to uzywalem go na poczatku, lecz dziwne rzeczy dzialy sie w roznych przegladarkach oraz wysylal mi sporo requestow (gdy tylko sie zmienia wartosc jeszcze bez klikniecia ).
Uzywalem go dokladnie w taki sposob jak napisales… Nom nic moze sprobuje jeszcze raz z tym ze zmienie :frequency na 2-3 sekundy 
Dzieki jeszcze raz
Pozdrawiam
Lukasz
Hmm akurat mialem chwilke wolna to i tez sprobowalem wrocic do poprzedniej implementacji…
<%= select ( :task, "value", [ [1,1], [3,3], [5,5], [10,10] ], { } )%>
<%= observe_field( "task_value",
:frequency => 3,
:with => "'value='+#{task.value}",
:url => { :action => "update", :id => "#{task.id}" } ) %>
Tylko ze observer zawsze widzi #{task.value}" jako 1 - powod ? To jest wartosc z Bazki dla jakies tam instancji opbiektu task, kompletnie nie rozumiem dlaczego wysyla ta opcje (w HTMLu ta opcja jest selected) wiec moze stad … w takim razie ponawiam moje pytanie jak wziasc wartosc, ktora sobie “wskaze” ??
Dzieki i Pozdrawiam
Lukasz
P.S.
Domyslam sie ze to nie moze byc trudne - pokarzcie mi moj blad w mysleniu 
[quote=luki3k5]Hmm akurat mialem chwilke wolna to i tez sprobowalem wrocic do poprzedniej implementacji…
<%= select ( :task, "value", [ [1,1], [3,3], [5,5], [10,10] ], { } )%>
<%= observe_field( "task_value",
:frequency => 3,
:with => "'value='+#{task.value}",
:url => { :action => "update", :id => "#{task.id}" } ) %>
Tylko ze observer zawsze widzi #{task.value}" jako 1 - powod ? To jest wartosc z Bazki dla jakies tam instancji opbiektu task, kompletnie nie rozumiem dlaczego wysyla ta opcje[/quote]
Zauważ, że #{task.value} jest ewaluowane jeszcze na serwerze, więc nie ma prawa zmienić się w przeglądarce.
Skasuj ten :with.
Napisałem Ci przecież, że przy observe_field nowa wartość pola będzie automatycznie załączona jako parametr. Jeśli chciałbyś to zapisać jawnie, to:
:with => "'value=' + encodeURIComponent( value )"
:with przyjmuje kod JavaScript
Dziala !!!
Super dzieki, widac przekombinowalem …
Mam jeszcze jedno pytanie…
Czy mozna jakos JSem odrazu zmienic wartosc tego selecta ?? chodzi mi o to zeby w htmlu sie zmienilo - poniewaz ja sobie robie RJSowe coda potem z tym i jak mi sie to przenosi miedzy okienkami to trace informacje o tym co bylo wybrane i nadal pamieta mi ta poprzednia wartosc z bazy (dopiero po full refresh pokauje co trzeba)
Pozdrawiam
Lukasz
Mam taki kod w widoku:[code] <% form_for @message, :html => { :multipart => true } do |f| -%>
<% opts_for_ph = User.find(:all, :order => ‘name’, :conditions => [“id_promoter = ?”,current_user.id]).collect {|c| [c.name, c.id]}.unshift([“Wybierz…”, “”])%>
<label for="id_recepient">Do: </label>
<%= f.select(:id_recepient,opts_for_ph)%></br></br>
<label for="subject">Temat:</label></br>
<%= f.text_field :subject %></br></br>
<label for="content">Treść:</label><br/>
<%= f.text_area :content, :size => '30x10' %></br></br>
Dodaj załącznik: <%= f.file_field :attachment %></br></br>
<%= submit_tag 'Wyślij' %>
<% end -%>[/code]
Jak zrobić, aby po naciśnięciu przycisku, wstawiało mi do pola id_recepient w bazie danych, id wybranego usera w select’e. Podkreślam, że jestem początkujący z Rails:)