Appel XHR sur id avec substitution de variable

Bonjour !

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

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

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)

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%>”).

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.

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

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 %>

Je suis en train de lire

On 5/30/07, Jérémy Dierx [email protected] wrote:

tu as essayé d’utiliser la méthode to_i sur ta string?

mon-id-#{obj.id.to_i} http://obj.id/

Le mercredi 30 mai 2007 à 18:06 +0200, Fabien J. 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

Le mercredi 30 mai 2007 à 18:15 +0200, Fabien J. 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

On Wed, 2007-05-30 at 18:14 +0200, Jérémy Dierx wrote:

Le mercredi 30 mai 2007 à 18:06 +0200, Fabien J. 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 …