scriptaculous. Ce que je voulais savoir c'est comment faire ca en
formulaire. Comment puis-je faire ca ? D'après mes recherches sur le
> Là tu viens de rencontrer un truc que je n'aime pas trop dans Rails : le
> fait de ne pas savoir que tu faisais de l'AJAX, avec prototype /
> scriptaculous "masqué" par du ruby.
>
> Prototype est la library javascript de base qu'utilise Rails. Scriptaculous
> est une surcouche de prototype qui fait de l'animation à l'écran, inclu de
> base aussi dans Rails. Prototype utilise pour sélectionner un élément de ta
> page (et lui ajouter des possibilités) par son id la méthode *$()*. Or,
> jQuery utilise aussi la méthode *$()*, mais pour faire beaucoup plus
> (sélectionner une liste d'élément par sélecteur css, liste que tu peux
> manipuler à la volée avec des itérateurs ; transformer un tableau ou un hash
> javascript simple *[]*, ou *{}* en un itérateur jQuery, renvoyer une version
> étendue du document, etc.). Donc quand tu charge les deux libraries, tu as
> un conflit, la dernière décidant de ce que l'on fait de la méthode *$()*.
> Heureusement, les braves gens de jQuery ont prévu le et assoupli le
> fonctionnement pour être compatible :
http://docs.jquery.com/Using_jQuery_with_Other_Libraries>
> Sinon, je t'encourage à voir ce qu'a réellement généré le code Rhtml :
> <%= observe_form :new_personne,
> :url => { :action => 'doublon' },
> :frequency => 2,
> :update => 'doublon'
> %>
>
> Tu vas t'apercevoir qu'en fait c'est du JavaScript prototype, écrit
> directement dans la page. Personnellement je trouve ça moche, du javascript
> dans du code HTML (philosophie Rails : on ne doit pas taper son javascript
> soi-même, c'est le boulot du rjs, un seul langage => ruby), je préfère des
> fichiers javascript .js à côté qui manipulent la page pour faire le boulot
> (philosohpie jQuery : pour bien dégrader une application, il faut qu'elle ne
> repose pas sur du javascript et des "hacks" html mais plutôt sur un code
> html simple et propre, et le JavaScript doit être dans son fichier, et faire
> le boulot pour ajouter les éléments d'interface dont il a besoin). Chaque
> philosophie à ses avantages / inconvénients :
>
> 1. Rails
> - Avantages
> - intégré dans Rails "de base"
> - remote_form_for, link_to_remote sont séduisants
> - Inconvénients
> - incite à oublier le JavaScript, donc te laisse dépourvu le jour
> où tu veux faire quelque chose de différent de ce qui est
> possible en RJS
> - incite à faire des vues avec du code JavaScript, ce qui n'est pas
> bon pour la réutilisation (la vue cible ne "connaît" pas le
> contexte de la
> source, les scripts de réaction à la réception de la cible
> sont bien mieux
> placés dans le contexte de la source)
> - verbeux
> - un poil plus lent que jQuery (ça se sent surtout si tu ne fais
> pas de bubbling avec des longues listes, ou si tu fais
> beaucoup d'animations
> compliquées)
> 2. jQuery + ce que tu veux côté serveur (dont Rails)
> - Avantages
> - rend les manipulations de la dom "magiquement facile" à condition
> de maîtriser les sélecteurs CSS
> - élégant et peu verbeux
> - incite à concevoir des interfaces qui "dégradent" bien (marchent
> sans JavaScript, même si c'est moins pratique, ça fait plaisir à des
> configurations sans JS)
> - incite à mieux comprendre et connaître le HTML propre et les CSS
> - Inconvénients
> - pas inclu "de base" dans Rails (mais facile à installer)
> - complique un peu si tu veux faire du rjs (mais c'est limite pas
> propre)
>
> Voilà, j'espère que ça t'aidera à faire ton choix et à avancer. Si tu veux
> d'autres tips jQuery, n'hésite pas à demander, mais ça ne t'exempte pas de
> lire la doc...
>
> Michel Belleville
>
> 2009/7/12 Adrien Coquio <
adrien.coq...@...>
>
>
>
> > D'accord, je vais me mettre à JQuery, ca a l'air très intéressant !
> > surtout avec la librairie UI !
> > Par contre je rencontre maintenant mon premier problème, j'avais une
> > requete ajax qui surveillait un formulaire mais depuis que j'ai
> > installé jquery, elle ne marche plus :
>
> > <%= observe_form :new_personne,
> > :url => { :action => 'doublon' },
> > :frequency => 2,
> > :update => 'doublon'
> > %>
>
> > Et selon le résultat de l'action "doublon" j'affichais, ou pas, le div
> > suivant :
>
> > <div id="doublon" style="background:yellow">
> > <%= render :partial => 'list_doublon' %>
> > </div>
>
> > Une idée ?
>
> > Merci
>
> > Adrien
>
> > On Jul 11, 9:59 pm, Michel Belleville <
michel.bellevi...@...>
> > wrote:
> > >
http://jquery.com/pourjQuery, ce n'est intégré dans Rails (mais c'est
> > > intégrable, sans grave problèmes) perso je te le recommande, si tu n'as
> > > aucune expérience de JavaScript
>
> > > Sinon, dans rails de base, tu as prototype / scriptaculous qui peut faire
> > > les mêmes choses (mais en moins joli, en moins bien à mon sens).
>
> > > Comme tu dois tout prendre le JS depuis le début, commence par jQuery, à
> > mon
> > > sens c'est l'avenir.
>
> > > Sinon, pour les conseils pour débuter, n'hésite pas à demander, la JS
> > c'est
> > > mon dada.
>
> > > Michel Belleville
>
> > > 2009/7/11 Adrien Coquio <
adrien.coq...@...>
>
> > > > C'est exactement ca que je veux faire, malheuresement je ne maitrise
> > > > pas le javascript ! Quelqu'un peut-il m'indiquer de la documentation
> > > > ( même en anglais ) pour réaliser ca, malgrè mes recherches je ne
> > > > trouve pas grand chose :S
> > > > Merci pour votre réponse
> > > > Adrien
>
> > > > On Jul 9, 2:18 pm, Michel Belleville <
michel.bellevi...@...>
> > > > wrote:
> > > > > Avec un bon framework JavaScript (jQuery) il y a des plugins tout
> > fait,
> > > > mais
> > > > > en gros ils marchent tous comme ça :
>
> > > > > 1. créer un élément html (div c'est bien) à la racine de ton
> > document
> > > > > - le positionner en "absolute" en haut à gauche du doc
> > > > > - lui donner un z-index css plus haut que tout le monde dans le
> > doc
> > > > > - lui mettre un fond noir et lui donner de la transparence (cf.
> > ton
> > > > > framework JS)
> > > > > - lui donner un waiter gif animé qui signifie que tu charge et
> > > > qu'il
> > > > > faut que l'utilisateur patiente
> > > > > 2. faire un call ajax pour récupérer juste ton formulaire (pas de
> > > > layout)
> > > > > - le coller à l'arrivée dans ton nouvel élément
> > > > > - lui coller l'action ajax pour créer le nouvel élément en
> > submit
>
> > > > > Si tu maîtrise bien les CSS et le javascript, c'est trivial. Sinon,
> > il y
> > > > a
> > > > > souvent des plugins tout prêts pour ton framework JS (enfin, en
> > jQuery
> > > > you
> > > > > il y en a).
>
> > > > > Michel Belleville
>
> > > > > 2009/7/9 Adrien Coquio <
adrien.coq...@...>
>
> > > > > > Bonjour,
>
> > > > > > J'ai le dilemne suivant :
>
> > > > > > J'ai un formulaire "nouvelle personne", dans ce formulaire on doit
> > > > > > choisir la commune de cette personne ( lien vers la table COMMUNES)
> > > > > > via un select contenant le nom de toutes les communes de la base
> > > > > > Je voudrai offrir à l'utilisateur de créer cette commune si elle
> > > > > > n'existe pas, je pourrai mettre un div caché et le faire apparaitre
> > en
> > > > > > ajax avec un lien "ajouter une commune" mais le formulaire pour
> > > > > > ajouter une commune est grand alors ca va vite devenir moche...
> > > > > > J'aimerai plutôt qu'une fenetre s'ouvre avec le formulaire et que
> > > > > > lorsque l'utilisateur valide le formulaire, la fenetre se ferme, et
> > la
> > > > > > nouvelle commune soit sélectionné dans le select du formulaire
> > > > > > personne.
>
> > > > > > Ma question : comment faire ca ? Je pensai à lightwindow mais je
> > n'ai
> > > > > > pas trouvé beaucoup de documentation pour faire ca avec rails et ca
> > à
> > > > > > l'air buggé (pas d'autocomplétion). Une fenêtre popup ? Ca peut
> > être
> > > > > > bien mais c'est un peu moche maintenant les popup avec le web 2.0,
> > > > > > non ? Une autre idée ? Des avis ?
>
> > > > > > Merci à tous
> > > > > > adrien
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups.