# Passare una variabile da js ad un blocco ERB: E' possibile?

**URL:** <https://www.ruby-forum.com/t/passare-una-variabile-da-js-ad-un-blocco-erb-e-possibile/162729>\
**Category:** IT\
**Created:** [March 13, 2009, 7:57am UTC](https://www.ruby-forum.com/t/passare-una-variabile-da-js-ad-un-blocco-erb-e-possibile/162729 "2009-03-13T07:57:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [March 13, 2009, 7:57am UTC](https://www.ruby-forum.com/t/passare-una-variabile-da-js-ad-un-blocco-erb-e-possibile/162729/1 "2009-03-13T07:57:43Z")

</div>

Salve a tutti,

In risposta ad una chiamata AJAX ho una view “js.erb” che ha un codice  
simile:

$(’#order\_update\_quantity’).html("\<%= escape\_javascript(render(:partial  
=\> ‘shared/update\_order\_quantity’, :locals =\> { :order =\> @order, :row  
=\> @order.order\_rows.find( row\_id ) })) %\>");

dove “row\_id” Ã¨ una variabile assegnata da js.

Ovviamente, il tutto non funziona. Quello che mi chiedo Ã¨ se sia  
possibile passare al volo il valore di una  
variabil ad un blocco ERB.

Grazie per il Vs aiuto.

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [March 13, 2009, 8:30am UTC](https://www.ruby-forum.com/t/passare-una-variabile-da-js-ad-un-blocco-erb-e-possibile/162729/2 "2009-03-13T08:30:22Z")

</div>

2009/3/13 Carmine M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Ovviamente, il tutto non funziona. Quello che mi chiedo è se sia  
> possibile passare al volo il valore di una  
> variabil ad un blocco ERB.

temo proprio di no: l’erb (ma vale anche per rjs) viene interpretato  
dal server, e solo alla fine il javascript viene eseguito dal client.

ma stiamo parlando di una chiamata ajax: perché non passi quella  
variabile come parametro?

pietro

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [March 13, 2009, 10:05am UTC](https://www.ruby-forum.com/t/passare-una-variabile-da-js-ad-un-blocco-erb-e-possibile/162729/3 "2009-03-13T10:05:30Z")

</div>

Pietro G. wrote:

> temo proprio di no: l’erb (ma vale anche per rjs) viene interpretato  
> dal server, e solo alla fine il javascript viene eseguito dal client.

giÃ , chissÃ perchÃ¨ mi ostinavo a rigettare la realtÃ 🙂

> ma stiamo parlando di una chiamata ajax: perchï¿½ non passi quella  
> variabile come parametro?

Il fatto Ã¨ che sto utilizzando un plugin jQuery per l’inplace editing  
che non mi consente di  
passare quella variabile come parametro aggiuntivo.  
Inoltre, ho una route che prevede due parametri:

- L’id dell’ordine
- L’id della riga relativa all’ordine

Mi secca dover modificare la route (e di conseguenza l’action), ma se Ã¨  
l’unica alternativa…

Intanto, grazie 1000 per il supporto

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [March 13, 2009, 10:28am UTC](https://www.ruby-forum.com/t/passare-una-variabile-da-js-ad-un-blocco-erb-e-possibile/162729/4 "2009-03-13T10:28:10Z")

</div>

Il 13 marzo 2009 10.05, Carmine M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

> che non mi consente di  
> passare quella variabile come parametro aggiuntivo.

non so quale sia questo plugin, quindi parlo alla cieca, ma forse la  
cosa piÃ¹ semplice Ã¨ crearti un tuo helper copiando e modificando  
quello che usi ora.

> Inoltre, ho una route che prevede due parametri:
> 
> - L’id dell’ordine
> - L’id della riga relativa all’ordine
> 
> Mi secca dover modificare la route (e di conseguenza l’action), ma se Ã¨  
> l’unica alternativa…

scusami, perchÃ© devi modificare la route? in una richiesta post (sia  
ajax che non) puoi passare tutti i parametri che vuoi a prescindere  
dalla route…

se la variabile js (row\_id?) va usata nell’url della richiesta ajax,  
costruisci l’url via javascript, tipo ‘/prova/’ + row\_id.

io ho avuto di questi problemi fintanto che mi ostinavo a usare sempre  
e solo gli helper rails, tipo link\_to\_remote; ora, quasi sempre,  
faccio la richiesta ajax direttamente da js, almeno quando non so in  
partenza (lato server) tutto quello che devo sapere per costruire la  
richiesta…

pietro

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [March 13, 2009, 11:57am UTC](https://www.ruby-forum.com/t/passare-una-variabile-da-js-ad-un-blocco-erb-e-possibile/162729/5 "2009-03-13T11:57:23Z")

</div>

Pietro G. wrote:

> > Mi secca dover modificare la route (e di conseguenza l’action), ma se Ã¨  
> > l’unica alternativa…
> 
> scusami, perchÃ© devi modificare la route? in una richiesta post (sia  
> ajax che non) puoi passare tutti i parametri che vuoi a prescindere  
> dalla route…

E’ vero ho detto una cazzata…

> se la variabile js (row\_id?) va usata nell’url della richiesta ajax,  
> costruisci l’url via javascript, tipo ‘/prova/’ + row\_id.

…perchÃ¨ partivo dal fatto di non voler rinunciare alla chiamate tipo:

xxxx\_path(…)

> io ho avuto di questi problemi fintanto che mi ostinavo a usare sempre  
> e solo gli helper rails, tipo link\_to\_remote; ora, quasi sempre,  
> faccio la richiesta ajax direttamente da js, almeno quando non so in  
> partenza (lato server) tutto quello che devo sapere per costruire la  
> richiesta…

Infatti, con questo approccio il problema non si presenta proprio.  
Anche io ho eliminato tutte le varie “link\_to\_remote” sostituendole con  
le richieste fatte  
direttamente dal lato js.

Bene, intanto, ho risolto.

Grazie ancora!
