Discussion: question d'ergonomie
Afficher un message
Vieux 25/03/2008, 02h37   #12
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: question d'ergonomie

J-F Portala a écrit :
> Merci de votre aide.
>
> Pour plus de précision, le formulaire affiche sur click du lien modifier
> affiche le formulaire
> de modification de l'article avec toutes ses caractéristiques (stock
> description famille prix...)


Oui?
Comment fait-il ?
Par exemple ça peut être :
- le chargement d'un fichier php qui aura questionné la base
avec affichage dans une iframe
- la même chose dans une frame
- la création via JavaScript du truc via un array de tous les articles
- un appel au PHP qui questionne la base
et revient via Ajax s'afficher au bon endroit

> C'est la validation du formulaire qui renvoie la pag principale dans
> laqualle les modifications sont enregistrées
> dans la table, puis la liste des tous les articles sest affichées.


Là, si je comprends bien il n'y aura à enregistrer que les modifs de
l'article vu.
Au retour du formulaire il y aura en plus la mise à jour de l'ensemble
des articles (et y compris celui modifié ici).

> Je peux mettre dans une variable globale le numero de l'article, mais
> comment puis je faire pour me positionner à l'endroit de l'article.


Le table des articles peut être dans un div limité en hauteur et en
overflow :
- ne montre que 3 ou 4 rangées
- avec un ascenseur pour le glisser (scroll)

Au click sur le bouton d'édition de l'article :
- on met le nom du bouton dans un champ caché du form
- on affiche la fiche de l'article

Au retour du formulaire le PHP aura écrit dans un script JS ce nom de
bouton et le JS lancera le focus sur ce bouton.
Hop! dans le cadre-div l'article est montré (en bas).

> Si j'ai bien compris , SAM propose dans se premiere reponse de gérer le
> tableau comme un enorme formulaire dans lequel tous les champs sont
> modifiables en direct. Ce qui permet de ne valider l'ensemble des
> modifications qu'une seule fois.
> La page n'est pas rafraichie et on reste navigue dans le tableau.


On peut aussi avoir un bouton de submit à chaque rangé.
- soit anonyme (sans nom) c'est le même partout
- soit avec un nom spécifique (S_00125 S_00126 S_00127...)
qui pourra alors remplacer le champ caché de repérage

> C'est une solution intéressante mais cela suppose que tous les champs soient
> gérés de cette façon. (certains champs correspondent à des boutons radios,
> d'autres à des select liés à d'autres tables...)


??? tu veux dire qu'on sélectionne un item et hop!
ça doit en direct aller chercher une table de cet item ?
... avec encore d'autres trucs modifiables ?

> Est ce que cela ne risque pas d'etre un peu lourd.


Bon, en fait on a :
un formulaire avec un table avec résumés d'articles

ref | intitulé | prix | Q dispo | bouton choisir |

au click sur [choisir] hop! appel d'un autre formulaire
(on ne fait pas tout sur la même page)
avec un table ou autre élément pour cet article :
boutons radios
select
champs de modif
etc
à la validation le form part enregistrer les modifs et réaffiche
le tableau complet résumé en le remettant à la bonne position

Il suffirait donc d'un champ caché mémorisant le N° de rangée et qui
serait baladé de fichier en fichier,
puis un petit JS de repositionnement dans le table général.

Il suffirait (peut-être à vérifier) d'avoir une ancre à chaque rangée et
que l'url des action de form aient cette ancre attachée
( monform.php#A_125 ) et là hop! c'est du HTML totomatique

> Si plusieurs personnes travaillent sur ce tableau en meme temps, toutes les
> modifications de l'une seront perdues lorsque le second validera.


donc on a 2 formulaires et un truc PHP pour empécher que 2 intervenants
travaillent sur le même article ou autre routine chiadée qui va éviter
les bourdes.

> Le fait de ne modifier les articles qu'un par un permet de limiter ce
> risque.


toutafé

> Dans les diffrentes responses , on a parle d'un setfocus().
> J'ai essayé dans chaque ligne de générer un champ texte et replacer le focus
> sur la ligne venant d'etre modifiée. La ligne a bien le focus, mais
> il n'y a pas de scrolling automatique permettant de centrer la ligne sur la
> page.


et la marmotte ? bon ... et en haut ?

> Actuellement, mon tableau depasse la page du navigateur. Si je limite mon
> tableau au sein d'un div, est ce que l'on a plus de controle pour gerer les
> positions des ascenceurs.


c'est pareil

Voilà une page-test avec un peu de JS (dont une partie pour simuler
activités serveur) avec le table dans extrait.
et replacement de la ligne (en haut) mais ce n'est pas joise que ça
saute dès qu'on y touche.
<http://cjoint.com/?dzbHdRBYlh>

> J'ai vu des exemples réalisés avec ajax permettant d'éditer directement des
> lignes d'un tableau comme sur un tableur.
> Avez vous déjà utilisé cette technique.


c'est pour travailler sur Internet ou en Intranet ?
En intranet ça ne doit pas se justifier.

à mon idée, le balancement entre les 2 fichiers est mieux.
- au moins on en a un neuf pour le général quand on y revient
- au moins quand on veut modifier on a un fichier pour modifs à jour

Pas besoin de faire rafraichir le général (ou peut-être toutes les 5 ou
10 minutes ?) puisque lors de l'appel de modif on a tout et à jour à
l'instant t.

> Merci de vos conseils


Par contre pour tout avoir dans la même page, j'Ajax sera requis.

--
sm
  Réponse avec citation
 
Page generated in 0,07964 seconds with 9 queries