Forum: Rails France Appel XHR sur id avec substitution de variable

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0dce6528acd78ce3a5654c94b095d539?d=identicon&s=25 Jérémy Dierx (Guest)
on 2007-05-30 16:03
(Received via mailing list)
Bonjour !

je souhaite faire un appel XHR dont l'élément html recepteur a un id
variant (<div id="mon-id-<%=obj.id%>"</div>).

J'ai le code suivant dans mon controller :

page.replace_html 'mon-id-#{obj.id}', :partial => "mon_partial"

Évidement, ceci ne peut pas fonctionner car les simples cotes ne
permettent pas la substitution de variable...

J'ai aussi essayé :

page.replace_html 'mon-id-', :partial => "mon_partial"
page << "$('mon-id-').value += '"+obj.id_qui_varie+"'"

mais sans succès.

Quelqu'un aurait-il une idée ?

Jérémy.

------------------------------------------------------------------------
Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86
http://www.pickabee.com
Be1e3ee645d23c95ba650c21bc885927?d=identicon&s=25 Fabien Jakimowicz (Guest)
on 2007-05-30 16:08
(Received via mailing list)
On Wed, 2007-05-30 at 16:01 +0200, Jérémy Dierx wrote:
> permettent pas la substitution de variable...
> Jérémy.
>

Je me doute qu'il y a un piège, mais pourquoi pas de double quotes ?
Enfin, l'helper dom_id permet d'éviter ce genre de code en définissant
une convention standard au sein du site (dans les vues html et rjs)
13ea48f056b19349027d2f4a6921a46a?d=identicon&s=25 Jean-François (Guest)
on 2007-05-30 16:14
(Received via mailing list)
Jérémy :
>  je souhaite faire un appel XHR dont l'élément html recepteur a un id
> variant (<div id="mon-id-<%=obj.id%>"</div>).
>
>  J'ai le code suivant dans mon controller :
>
>  page.replace_html 'mon-id-#{obj.id}', :partial => "mon_partial"

"mon-id-#{obj.id}"
?

>  Évidement, ceci ne peut pas fonctionner car les simples
> cotes ne permettent pas la substitution de variable...

Mais j'ai ptêtre pas compris la question.

  -- Jean-François.

--
À la renverse.
0dce6528acd78ce3a5654c94b095d539?d=identicon&s=25 Jérémy Dierx (Guest)
on 2007-05-30 17:59
(Received via mailing list)
Merci pour vos réponses,

Le mercredi 30 mai 2007 à 16:13 +0200, Jean-François a écrit :

>
J'ai essayé cela bien sûr : Une exception est renvoyée (can't convert
string to fixnum ou un truc comme ça), la méthode replace_html ne semble
accepter en paramètre id que les objets de type fixnum (comme les string
entre simples cotes).

Une autre idée ?

En fait, pour la petite histoire, j'ai un tableau dans lequel j'ai un
champs "true/false" dont chaque cellule est représentée par une image
(rond vert=true/rond gris=false).
la cellule de ce champs a un id="mon-id-<%=obj.id%>"
Lors d'un onclick sur la cellule, je déclenche un appel XHR qui va
modifier la valeur bouléenne de l'objet correspondant et retourne le
contenu de la cellule avec la bonne image (true=rond vert, false=rond
gris).

J'utilise donc pour communiquer en XHR l'assistant remote_fonction() et
page.replace() qui met à jour la puce avec la bonne image

Peut-être y a t'il plus simple ?

J.


> >  Évidement, ceci ne peut pas fonctionner car les simples
> > cotes ne permettent pas la substitution de variable...
>
> Mais j'ai ptêtre pas compris la question.
>
>   -- Jean-François.
>

------------------------------------------------------------------------
Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86
http://www.pickabee.com
Be1e3ee645d23c95ba650c21bc885927?d=identicon&s=25 Fabien Jakimowicz (Guest)
on 2007-05-30 18:08
(Received via mailing list)
On Wed, 2007-05-30 at 17:59 +0200, Jérémy Dierx wrote:
> >
> > "mon-id-#{obj.id}"
> > ?
> >
> J'ai essayé cela bien sûr : Une exception est renvoyée (can't convert
> string to fixnum ou un truc comme ça), la méthode replace_html ne
> semble accepter en paramètre id que les objets de type fixnum (comme
> les string entre simples cotes).
un conseil, utilise dom_id sur ton obj, ca te simplifierait grandement
la vie : "mon-id#{obj.id}" devient dom_id(obj)
Pour ton exception si tu ne veux pas dom_id : "mon-id#{obj.id.to_s}"
> gris).
Tu rencontre donc le cas typique d'usage de dom_id : ton id="mon-id-<%
=obj.id%>" devient id=<%= dom_id obj %>
847c9da8d177dd26f815a53c7742b7be?d=identicon&s=25 Aurélien Bottazini (Guest)
on 2007-05-30 18:12
(Received via mailing list)
Je suis en train de lire

On 5/30/07, Jérémy Dierx <jeremy.dierx@pickabee.com> wrote:
> >
> tu as essayé d'utiliser la méthode to_i sur ta string?
>

mon-id-#{obj.id.to_i} <http://obj.id/>
0dce6528acd78ce3a5654c94b095d539?d=identicon&s=25 Jérémy Dierx (Guest)
on 2007-05-30 18:14
(Received via mailing list)
Le mercredi 30 mai 2007 à 18:06 +0200, Fabien Jakimowicz a écrit :
>> Pour ton exception si tu ne veux pas dom_id : "mon-id#{obj.id.to_s}"

Bein non, c'est un cast en string ça, or replace_html veut un fixnum :-S

>> Tu rencontre donc le cas typique d'usage de dom_id : ton id="mon-id-<
%
>> =obj.id%>" devient id=<%= dom_id obj %>

ça me semble pas mal du tout cette soluce, je ne connaissais pas. Je
vais essayer ça !
merci Fabien.

J.

------------------------------------------------------------------------
Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86
http://www.pickabee.com
Be1e3ee645d23c95ba650c21bc885927?d=identicon&s=25 Fabien Jakimowicz (Guest)
on 2007-05-30 18:16
(Received via mailing list)
On Wed, 2007-05-30 at 18:14 +0200, Jérémy Dierx wrote:
> Le mercredi 30 mai 2007 à 18:06 +0200, Fabien Jakimowicz a écrit :
> >> Pour ton exception si tu ne veux pas dom_id :
> "mon-id#{obj.id.to_s}"
>
> Bein non, c'est un cast en string ça, or replace_html veut un
> fixnum :-S
Heu, replace_html demande un string et non un integer ...
0dce6528acd78ce3a5654c94b095d539?d=identicon&s=25 Jérémy Dierx (Guest)
on 2007-05-30 18:28
(Received via mailing list)
Le mercredi 30 mai 2007 à 18:15 +0200, Fabien Jakimowicz a écrit :
>> Heu, replace_html demande un string et non un integer ...
oula je dois être fatigué moi ^^

------------------------------------------------------------------------
Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86
http://www.pickabee.com
This topic is locked and can not be replied to.