Forum: Rails France RoR + Ajax

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.
964b889a109bd1418b50b58b61eac649?d=identicon&s=25 moufid zeribi (Guest)
on 2006-05-30 10:28
(Received via mailing list)
Bonjour,
je suis en train de travailler avec le template RJS, avec en particulier
l'usage des fonctions "insert_html" et "visual_effect". Le problème qui
se pose est que ma page renvoyée (qui me rend l'effet voulu) se voit
tâchée par l'affichage de ma requête en toute lettre traduite par mon
navigateur , du style

try { new Insertion.Before("contenu_tableau", " \n.....; new
Effect.Highlight("contenu_tableau",{duration:2}); } catch (e) {
alert('RJS error:\n\n' + e.toString()); alert('new
Insertion.Before(\"contenu_tableau\", \"


(et c'est pas jolie du tout!!!). Comment faire pour ne plus avoir du
code sur ma page?
Merci de votre aide


moufid
Ceee1f15591d1f61ac5bec1bc70d0062?d=identicon&s=25 Sébastien Gruhier (Guest)
on 2006-05-30 10:35
(Received via mailing list)
Bizarre mais il s'affiche où ce code?

Le 30 mai 06 à 10:25, moufid zeribi a écrit :
B4988fe1d25f1afd8a9697ee3896db2d?d=identicon&s=25 Thomas (Guest)
on 2006-05-30 10:54
Ca c'est parce que l'en tête content/type de ta réponse est settée d'une
manière ou d'une autre à text/html au lieu de text/javascript ... Tu es
bien en version récente de rails ? l'extension de ton template est bien
.rjs ? tu ne settes pas toi même l'entête content-type à text/html ...

voila qq idées de réflexion !!!

A+
Thomas
F37f815db2a969774377efcc2db492ad?d=identicon&s=25 Krull (Guest)
on 2006-05-30 17:44
(Received via mailing list)
Je pense que tu as oublié :

<%= javascript_include_tag "prototype" %>
<%= javascript_include_tag "effects" %>

Dans ta vue

++ krull

-----Message d'origine-----
De : railsfrance-bounces@rubyonrails.fr
[mailto:railsfrance-bounces@rubyonrails.fr] De la part de moufid zeribi
Envoyé : mardi 30 mai 2006 10:25
À : railsfrance@rubyonrails.fr
Objet : [RailsFr] RoR + Ajax

Bonjour,
je suis en train de travailler avec le template RJS, avec en particulier
l'usage des fonctions "insert_html" et "visual_effect". Le problème qui
se pose est que ma page renvoyée (qui me rend l'effet voulu) se voit
tâchée par l'affichage de ma requête en toute lettre traduite par mon
navigateur , du style

try { new Insertion.Before("contenu_tableau", " \n.....; new
Effect.Highlight("contenu_tableau",{duration:2}); } catch (e) {
alert('RJS error:\n\n' + e.toString()); alert('new
Insertion.Before(\"contenu_tableau\", \"


(et c'est pas jolie du tout!!!). Comment faire pour ne plus avoir du
code sur ma page?
Merci de votre aide


moufid
_______________________________________________
Railsfrance mailing list
Railsfrance@rubyonrails.fr
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance
29cb561c685c0da087304136b58712f9?d=identicon&s=25 Renaud (Nel) Morvan (Guest)
on 2006-05-30 18:21
(Received via mailing list)
moufid zeribi wrote:
> Insertion.Before(\"contenu_tableau\", \"
>
>
> (et c'est pas jolie du tout!!!). Comment faire pour ne plus avoir du
> code sur ma page?

Il faut bien comprendre la nature d'un template RJS, ce n'est rien
d'autre que du code javascript envoyé dans une requête http.
Donc ca doit impérativement être lu et évalué via javascript pour être
utile et donc 99% du temps par Ajax.

Donc si tu vois du code il y a deux réponses possibles:

Premier cas: tu ne vois que ca (la page = la réponse RJS)

Alors c'est que tu as fait un lien directe vers ton controller ce qui ne
peut pas marcher, il faut que ce soit evaluer par javascript, ton
navigateur lui ne fait que naviger.

Bref remplacer un link_to ou par link_to_remote (et équivalent suivant
le cas formulaire).

Si c'est déjà le cas alors 1) tu n'as pas chargé prototype, 2) l'appel
ajax rate/erreur JS et ton navigateur passe par un failback sans
javascript et et charge la page lui même.

Deuxième cas: une partie de l'écran est remplacé par le code rjs au lieu
d'être évaluer. Ce qui signifie que c'est bien récupéré par JS mais pas
évalué.
Deux possibilités:

1/ faire rake update_javascript (ta version de prototype ne supporte
peut-être pas RJS)
2/ regarder le code source de la page, et notamment le javascript qui
invoque le controller devant déliver le RJS:
Vérifie que l'appelle Ajax a pour options "evalScript:true".
Si c'est un Ajax.Updater c'est que tu as fait une erreur, ca ne permet
pas d'évaluer du rjs ca fait juste de l'insertion quand bien même
evalScript est setté à true.

Renaud
This topic is locked and can not be replied to.