Actualisation zone de liste

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Actualisation zone de liste

Messagepar kochiz » 02 Oct 2012 à 11:38

Bonjour,

En web, je dois mettre à jour une liste de choix en fonction du choix dans une autre sur le même masque.

C'est de l'existant et la propriété du champ 1er choix est de ne pas actualiser les champs à chaque nouveau mot clé, il y a une fonction JS spéciale selectionListe dans ce masque !

Du coup je tente d'utiliser cette biblio http://forum.dominoarea.org/viewtopic.php?f=19&t=21936

Mais pour avoir les résultats je dois cliquer dans mon champ résultat, ce qui n'est pas terrible, dans ce champ j'ai bien mis actualiser champs à chaque nouveau mot clé.

Le résultat de la requette peut sans doute alimenter un tableau JS :?: mais je préfère si possible passer par ce champ Notes.

Si vous avez des idées :wink: je suis preneur.
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Re: Actualisation zone de liste

Messagepar Michael DELIQUE » 02 Oct 2012 à 11:46

désolé, mais je comprend rien
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Actualisation zone de liste

Messagepar roubech » 02 Oct 2012 à 13:36

je n'ai pas regardé en détails tout ton post, mais pour des "listes imbriquée"
- soit tu procèdes comme en Notes avec les propriétés mettre à jour le doc sur le champ 1 et mettre à jour les choix sur le champ 2. Et Domino va se charger de faire l'aller-retour serveur pour mettre à jour la liste 2. Il faut être conscient que dans le cas il y a un submit, doc si tu as de la validation de champ côté client sur le onSubmit, il est appellé dans ce cas aussi ...
- soit tu charges dans un tableau JS avec toutes les options. Dans le onchange du champs 1 tu utilises ce tableau pour charger la liste de choix du champ 2. L'inconvénient de cette solution c'est que tu charges tout même si tu n'en a pas besoin et si tes listes sont grandes ...
- soit tu fais des requêtes ajax pour récupérer la liste de choix quand tu changes la valeur dans le champ 1
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Actualisation zone de liste

Messagepar kochiz » 02 Oct 2012 à 13:55

Michael DELIQUE a écrit:désolé, mais je comprend rien

C'est que je pose mal le problème :wink:

Je dois ajouter des informations sur un masque existant.
Sur ce masque j'ai deux champs de type zones de liste dont la case à cocher "actualiser champs à chaque nouveau mot clés" est décoché.
La fonction "selectionListe" (la même que celle utilisée par Domino) est présente et modifiée dans l'entête JS de ce masque.

Je dois ajouter deux zones de listes sur ce masque, les valeurs de ces zones sont fonctions de celle sélectionnée dans ma liste existante.

Je passe donc à l'aide de la fonction http://forum.dominoarea.org/viewtopic.php?f=19&t=21936 qui me retourne les résultats.

Seulement pour visualiser les résultats je dois cliquer dans la liste des résultats et positionner ce champ avec "Actualiser champ à chaque nouveau mot clé".


Je viens de lire la réponse de Roubech, et c'est bien vers de l'Ajax que je dois me tourner car je ne souhaite pas faire de submit et les listes sont conséquentes.

Le site domlike.net étant hors ligne c'est dommage car je crois qu'il y avait des articles là dessus. :cry:
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Re: Actualisation zone de liste

Messagepar Michael DELIQUE » 02 Oct 2012 à 14:06

re,

sit u fais de l'ajax, tu dois faire tout le traitement en JS avec comme déclencheur le onchange...

oui domlike est hs, mais je l'ai aspriré...
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Actualisation zone de liste

Messagepar kochiz » 02 Oct 2012 à 14:15

Michael DELIQUE a écrit:re,

sit u fais de l'ajax, tu dois faire tout le traitement en JS avec comme déclencheur le onchange...

oui domlike est hs, mais je l'ai aspriré...


Je regarde et vous tiens au courant, j'ai un comportement curieux sur ce masque car il n'est pas sauvegardé, tous les champs ne sont pas réactualiser et la fonction selectionListe est modifiée.
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Re: Actualisation zone de liste

Messagepar kochiz » 02 Oct 2012 à 14:20

En fait je bute sur l'exploitation du retour qui n'est que du JS mais je vais l'avoir, je l'aurai :twisted:
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Re: Actualisation zone de liste

Messagepar kochiz » 02 Oct 2012 à 14:58

J'appelle le onchange de ma liste à alimenter (Liste2).

J'ai bien les informations qui remontent dès que je sélectionne un élément de ma première liste (Liste1) :D

Le champ Liste2 doit avoir actualiser à chaque nouveau mot clé et dans la fonction j'ai mis
Code : Tout sélectionner
XHRequest.async=false;


Le hic c'est que en fin de fonction Liste1 se positionne sur la valeur initiale :cry:
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Re: Actualisation zone de liste

Messagepar Michael DELIQUE » 02 Oct 2012 à 15:16

salut

la maj du champ est a faire en JS et c'est en Js que tu donne la valeur d'affichage
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Actualisation zone de liste

Messagepar kochiz » 02 Oct 2012 à 15:36

C'est bien ce que fais (enfin je pense :? )

Code : Tout sélectionner
nLigne = f.Nom.selectedIndex;
cle = f.Code.options[nLigne].text;
f.Profils.innerText = dbLookup("","", "PRFCOD", cle, 2,"",true);


C'est ce qui est sur le onchange de mon champ Profils (Liste2).

C'est appelé via selectionListe du champ Code ou Nom (Liste1).

Lorsque je choisis une valeur dans Liste1, les infos dans Liste2 sont bien correctement chargées mais la position de la Liste1 redevient l'initiale (avant sélection).
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Re: Actualisation zone de liste

Messagepar Michael DELIQUE » 02 Oct 2012 à 16:02

il faut realimenter ta liste directement en JS
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Actualisation zone de liste

Messagepar kochiz » 02 Oct 2012 à 16:11

C'est bien çà, je veux passer par un champ Notes (dont finalement je ne sers pas) :(

Je vais alimenter ma liste (Liste2) en JS avec les résultats de la requete qui doit me renvoyer un tableau si j'ai bien lu.

Je vois çà jeudi et vous tiens informé.

Merci pour les conseils :wink:
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault

Re: Actualisation zone de liste

Messagepar roubech » 03 Oct 2012 à 13:09

tu parles d'une fonction selectionListe, mais c'est pas un truc natif à ma connaissance donc je ne sais pas ce qu'elle fait ....
Le champ Liste2 doit avoir actualiser à chaque nouveau mot clé

tu parles de l'option dans les propriétés du champ ? car c'est du Notes, donc passe par un aller retour serveur et un refresh de la page
f.Profils.innerText = dbLookup("","", "PRFCOD", cle, 2,"",true);

t'as une fonction JS client dbLookup ???
et quand je vois innerText je me dis que Profils est une div ?
moi je vois plutôt une fonction JS qui fait un appel ajax pour récupérer un array de valeur
et ensuite une boucle pour venir alimenter le tableau d'options de ton 2ème champ à coup de new Option(libellé, valeur) ...
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Actualisation zone de liste

Messagepar kochiz » 04 Oct 2012 à 07:54

La fonction "selectionListe" c'est bien celle de domino (dans le source de la page).

La fonction dbLookup c'est celle ci http://forum.dominoarea.org/viewtopic.php?f=19&t=21936

Où je me trompes c'est que "Profils" est un champ Notes de type "Zone de liste".

Ce que je vais donc faire c'est récupérer les valeurs retournées dans un tableau qui sera afficher dans un div.
Patience et longueur de temps font plus que force ni que rage


Version Client 7
Version serveur 7 windows 2000/2003
Avatar de l’utilisateur
kochiz
Empereur des posts
Empereur des posts
 
Message(s) : 1232
Inscrit(e) le : 13 Jan 2005 à 11:01
Localisation : Hérault


Retour vers Développement

cron