« Return to Thread: Formulaire en popup ??

Re: Formulaire en popup ??

by Adrien Coquio :: Rate this Message:

Reply to Author | View in Thread


Merci beaucoup pour toutes ces explications, je me décide bien pour
faire du jquery ( à moins que je me rende compte que c'est beaucoup
plus de travail ) !
En fait j'ai mal posé ma question, j'avais compris que mon code
n'étais pas compatible jquery et je ne souhaite plus utiliser
scriptaculous. Ce que je voulais savoir c'est comment faire ca en
jquery ?
Pour l'instant j'essaye juste de faire ca :

<script type="text/javascript">
  $('#new_personne).change(function() {
  $('#doublon').html('testok);
});
</script>

mais malheuresement rien ne se produit lorsque je change la valeur
d'un champ du formulaire ( même résultat si je remplace $
('new_personne') par $('#personne_nom') qui est l'id d'un input du
formulaire. Comment puis-je faire ca ? D'après mes recherches sur le
net c'est bien la propriété change qu'il faut utiliser de cette
manière :S ?

Je me demande également comment organiser mes fichiers pour jquery
dans rails ? Ou places-tu les .js ? Correspondent-t-ils chacun à une
vue ?

Adrien


On Jul 12, 1:04 pm, Michel Belleville <michel.bellevi...@...>
wrote:

> 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.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse railsfrance@...
Pour résilier votre abonnement envoyez un e-mail à l'adresse railsfrance-unsubscribe@...
-~----------~----~----~----~------~----~------~--~---

 « Return to Thread: Formulaire en popup ??