# Select - onclick

**URL:** <https://www.ruby-forum.com/t/select-onclick/140275>\
**Category:** IT\
**Created:** [June 12, 2008, 3:15pm UTC](https://www.ruby-forum.com/t/select-onclick/140275 "2008-06-12T15:15:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![catiana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/8e7dd6/32.png) [@catiana](https://www.ruby-forum.com/u/catiana)\
**Post date:** [June 12, 2008, 3:15pm UTC](https://www.ruby-forum.com/t/select-onclick/140275/1 "2008-06-12T15:15:51Z")

</div>

Ciao a tutti,  
ho un quesito da porvi.

Ho questo frammento di codice:

 \<% @departures.each do |departure| %\> \<option value="\<%=departure.id %\> \<%= departure.from %\> - \<%= departure.to %\> ore \<%= departure.start\_time%\> \</option\> \<% end %\> \</select\> \<p\>Vorrei che al click sull’elemento selezionato venga aggiornata una\<br\> variabile di sessione( session[:departure\_id] ) con il valore\<br\> dell’elemento stesso.\</p\> \<p\>Spero di essere stata chiara.\<br\> Qualcuno puÃ² aiutarmi?\</p\> \<p\>Grazie a tutti anticipatamente.\</p\>

---

<div class="post-metadata">

**Author:** ![catiana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/8e7dd6/32.png) [@catiana](https://www.ruby-forum.com/u/catiana)\
**Post date:** [June 17, 2008, 12:07pm UTC](https://www.ruby-forum.com/t/select-onclick/140275/2 "2008-06-17T12:07:38Z")

</div>

Ciao ragazzi,  
ho risolto in questa maniera:

\<%= collection\_select(:departure\_id, :departure\_id, @departures, :id,  
:departures,  
{:prompt =\> “Seleziona una tratta”},  
{:onchange =\> “#{remote\_function(:url =\> {:action  
=\> “search”, :controller=\>“departures”},  
:with =\>  
“‘departure\_id=’+value”)}”}) %\>

dove departures Ã¨ un metodo cosÃ¬ definito nel model:

def departures  
“#{from} - #{to} ore #{start\_time.strftime(”%H:%M")}"  
end

mentre nel controller l’azione search Ã¨ la seguente:

def search  
session[:departure\_id] = params[:departure\_id]  
render(:update) { |page| page.call ‘location.reload’ }  
end

---

<div class="post-metadata">

**Author:** ![catiana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/8e7dd6/32.png) [@catiana](https://www.ruby-forum.com/u/catiana)\
**Post date:** [July 14, 2008, 11:40am UTC](https://www.ruby-forum.com/t/select-onclick/140275/3 "2008-07-14T11:40:46Z")

</div>

> def search  
> session[:departure\_id] = params[:departure\_id]  
> render(:update) { |page| page.call ‘location.reload’ }  
> end

Ciao a tutti,  
rieccomi di nuovo.  
Ho un altro quesito da porvi, e spero vivamente che qualcuno mi aiuti.

Il codice che ho scritto funzina su Firefox, ma non su Explorer perchÃ¨  
una volta che eseguo  
render(:update) { |page| page.call ‘location.reload’ }  
quindi ricarico la pagina new.html.erb(con all’interno una form di  
inserimento dati) perdo le informazioni che ho giÃ inserito.

Qualcuno sa indicarmi una via d’uscita?

Grazie mille a tutti.

Catiana.
