Assegnazione valore da select

Ciao a tutti

Ho questa tabella
CREATE TABLE SERVICES (
ID INTEGER NOT NULL,
NOME VARCHAR (35) ,
CODICE CHAR (7) ,
IMPORTO DECIMAL (6, 2),
NUMERO SMALLINT);

E questa _form relativa ad un’altra tabella PRESCRIPTION
che ha un campo service_id e un campo numero_terapie che al momento
è immesso dall’utente.

Prestazione:
<%=
@services = Service.find(:all, :order => “nome”)
collection_select(“prescription”, “service_id”, @services, :id, :nome)
%>
<% @prescription.numero_terapie = @prescription.service_id %>
Numero terapie
<%= text_field ‘prescription’, ‘numero_terapie’ %>

Partendo dal service_id selezionato come posso riempire il campo
numero_terapie
con il corrispondente valore service.numero lasciando comunque la
possibilità all’utente di modificarlo?

La soluzione sarà forse banale ma io non ne vengo a capo.
Sperando di essere stato chiaro
in attesa … Grazie

nel tuo form metti un observer sulla select

<%= observe_field “prescription_service_id” ,:url => { :action =>
“find_terapie” }, :with => “service_id” %>

e, nel controller, un’azione per recuperare il valore e valorizzare il
campo

def find_terapie
service=Service.find(params[:service_id])
render :update do |page|
page[:prescription_service_id].value=service.numero
end
end

Ricordati di includere i javascript necessari (<%=
javascript_include_tag :defaults %>)

ciao
Simo

B. Maffettone wrote:

Ciao a tutti

Ho questa tabella

Partendo dal service_id selezionato come posso riempire il campo
numero_terapie
con il corrispondente valore service.numero lasciando comunque la
possibilità all’utente di modificarlo?

Sorry, prima svista; ovviamente nel controller devi mettere:
page[:prescription_snumero_terapie].value=service.numero

Simo - Addsw wrote:

nel tuo form metti un observer sulla select

<%= observe_field “prescription_service_id” ,:url => { :action =>
“find_terapie” }, :with => “service_id” %>

e, nel controller, un’azione per recuperare il valore e valorizzare il
campo

def find_terapie
service=Service.find(params[:service_id])
render :update do |page|
page[:prescription_service_id].value=service.numero
end
end

Ricordati di includere i javascript necessari (<%=
javascript_include_tag :defaults %>)

ciao
Simo

Ricevuto.
Grazie tante !!! ora mi documento su

nel tuo form metti un observer sulla select

provo a fare come hai detto e ti faccio sapere.

Ancora grazie
Ciao
BM

Per la fretta di provare non mi sono documentato granchè, ma sembra che
l’azione
find_terapie non venga chiamata.Comunque:
in _form.rhtml ho messo

Prestazione:

<%= observe_field “prescription_service_id” ,:url => { :action =>

“find_terapie” }, :with => “service_id” %>


ho provato anche “prescription[service_id]”


<%=
@services = Service.find(:all, :order => “nome” ).map {|u|
[u.nome+’–> '+u.numero.to_s, u.id] }
select(:prescription, :service_id, @services)
%>

*****quando funzionerà come valorizzo questo sotto ?

Numero terapie <%= text_field 'prescription', 'numero_terapie' %> ................ ************************************************ in new.rhtml <%= javascript_include_tag :defaults %>

Nuova ricetta

<%= start_form_tag :action => ‘create’ %>
<%= render :partial => ‘form’ %>
<%= submit_tag “Registra” %>
<%= end_form_tag %>

<%= link_to ‘Indietro’, :action => ‘list’ %>


in prescription_controller
def find_terapie
service=Service.find(params[:service_id])
render :update do |page|
page[:prescription_numero_terapie].value=service.numero
end
end

Sicuramente sbaglio! ma dove? se puoi dirmelo!?
Scusa se approfitto del tuo tempo
BM

*****quando funzionerà come valorizzo questo sotto ?
Mi rispondo da solo
con
page[:prescription_numero_terapie].value=service.numero
Esatto ?

In public/javascripts devo avere defaults ?

Ciao

Simo - Addsw wrote:

nel tuo form metti un observer sulla select

Ho riscritto questo:

Prestazione: <%= collection_select("prescription", "service_id", @services, :id, :nome) %>

<%= observe_field “prescription_service_id” ,:url => { :action =>
“find_terapie” }, :with => “service_id” %>

variando
select(:prescription, :service_id, @services)

e adesso funziona, non so se il problema era tra select e
collection_select ma
per ora mi basta che funzioni dopo indagherò.
Ti ringrazio dell’aiuto.
Spero in futuro di potermi disobbligare fornendo aiuto a mia volta a
qualcuno.
Per ora per quanto riguarda Ruby e Rails sono all’età del bronzo
(pietra?)
col tempo … forse …
Ciao