OVH Cloud OVH Cloud

question d'ergonomie

14 réponses
Avatar
J-F Portala
Bonjour
je travaille avec wamp

J'affiche une table article dans un tableau.
Chaque ligne correspond à la description de l'article et en fin de ligne ,
j'ai mis un lien "modifier" qui permet d'ouvrir une boite de
dialogue permettant de modifier l'article.
Lorsque je valide ce formulaire, je rafraichis mon tableau avec les
nouvelles informations.

Le probleme est que lorsque j'ai plusieurs centaines d'articles, lorsque je
réaffiche la page avec le tableau,
j'ai perdu la position de la ligne que je venais de modifier, ce qui fait
que si je veux modifier l'article juste au dessus ou en dessous
pour modifier un prix par exemple, je dois à nouveau chercher dans tout le
tableau.

Je peux mettre en évidence le dernier article modifié en mettant la ligne
d'une autre couleur, mais il faut quand
meme faire du scrolling pour le rechercher.

Je sais que le top serait de modifier directement dans le tableau
d'affichage sans passer par le formulaire, mais cela me parait
depasser mes compétences.

Auriez vous des pistes ?

merci

Jeff

4 réponses

1 2
Avatar
SAM
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
Avatar
J-F Portala
Merci beaucoup.

Je n'avais pas pensé aux ancres pourtant , je les avais utilisées pour mes
premieres pages hrml.

L'exemple de SAM est plus que sympathique.

Encore merci.

Remarque d'ordre général:
Je suis quand meme un peu surpris du nombre de solutions personnelles
différentes pour faire
les opérations universelles de modifications - insertion - suppression dans
une table.
Je pensais trouver des composants ou des classes prenant en charge cette
partie fastidieuse et incontournable.
Un peu comme phpmyadmin mais avec une interface simplifiée aux opérations de
bases pour un utilisateur final.

Jeff
Avatar
SAM
J-F Portala a écrit :
Merci beaucoup.

Je n'avais pas pensé aux ancres pourtant , je les avais utilisées pour mes
premieres pages hrml.



et du moment que c'est le php qui les crée ce n'est pas trop lourd à
mettre en place.

L'exemple de SAM est plus que sympathique.



sauf que sur cJoint il ne fonctionne pas au top.
(pas de retour du formulaire)

Je suis quand meme un peu surpris du nombre de solutions personnelles
différentes pour faire
les opérations universelles de modifications - insertion - suppression dans
une table.



Là, tu nous parles de table(s) de base de données, non?

Je pensais trouver des composants ou des classes prenant en charge cette
partie fastidieuse et incontournable.



... comme les tables sont personnalisables ... autant d'interfaces que
de tables ... et autant d'interfaces que de fonctionnalités voulues

Je ne sais ce que vaut :
<http://www.phpcs.com/codes/PHP-CLASSE-MYSQL-STYLE-MYSQLI_41588.aspx>

Un peu comme phpmyadmin mais avec une interface simplifiée aux opérations de
bases pour un utilisateur final.



c'est un peu vrai que c'est fastidieux de 'personnaliser'

<http://www.nexen.net/actualites/tutorial/16665-une_interface_mysql_en_flash_:_phpmyedit.php>
Je ne sais si ça vaut le coup d'apprendre phpMyEdit pour créer 2 ou 3
boutons de gestion ?
http://www.phpmyedit.org/

--
sm
Avatar
Mickaël Wolff
Lea GRIS a écrit :

Tu peux ajouter un attribut name



Non ! En HTML4, l'attribut name n'existe que pour les éléments BUTTON,
TEXTAREA, APPLET, SELECT, FORM, FRAME, IFRAME, IMG, A, INPUT, OBJECT,
MAP, PARAM et META !

name et id ne sont pas interchangeables, ils n'ont pas la même sémantique.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
1 2