IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

table avec recherche sur colonne


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut table avec recherche sur colonne
    Bonjour,
    je suis toujours entrain de créer mon composant graphique TABLE.
    Pour l'instant le clic sur la colonne entrain le trie de la colonne.
    http://www.wincroc.fr
    J'ai placé une loupe a droite de chaque titre de colonne pour la recherche.
    Le but est que lorsque l'utilisateur clique sur la loupe, un champ de saisie apparaisse a la place du label de la colonne.

    Que dois-je faire :

    solution 1 : prévoir a la création de la table le champ de saisi et au clic de la loupe, cacher le label et montre le champs de saisi

    Solution 2 : ne pas le prévoir a la création de la table mais au clic sur la loupe, cacher le label et créer un noeud comportant le champ de saisie. Une fois la recherche terminée, je supprime le noeux au lieu de le masquer pour remettre le label.

    Le but du champs de saisi, est qu'au fur et a mesure que l'utilisateur tape le mot a rechercher, je positionne le bandeau de sélection sur le mot le plus proche.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    prévois ton champs de saisie dès le départ en visibility:hidden ou display:none et fait le apparaitre quand tu en as besoin ...

  3. #3
    Membre à l'essai
    Femme Profil pro
    Enseignant chercheur retraitée
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant chercheur retraitée

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 19
    Points
    19
    Par défaut tri alphabétique
    Je serais plutôt d'accord avec SpaceFrog... mais difficile de choisir sans avoir une idée plus précise de ce que tu veux faire.

    Tu dis vouloir placer ton champ de saisie à la place du label de la colonne : or tu as déjà deux boutons en entête, pourquoi ne pas afficher UN champ recherche à cet endroit là ? le clic sur la loupe donnerait le focus au champ de recherche et changerait son label ?

    Pour moi, ça présente un avantage : le client sait tout de suite qu'il peut faire des recherches et tu n'as pas à créer/supprimer des nœuds dans la table !

    Mais bien sûr, le positionnement du champ à la place du label donne plus de dynamisme à la page ...

    Ceci étant, t'es-tu déjà amusé à tester un tri sur une colonne de noms qui contiendrait des trucs du genre : Benveniste, Bréal, Brøndal, Brosses, Bühler, ... et autres joyeusetés ( Hervás, Kuriłowitz, ...) fournies par des chaines codées en Unicode ???

    Ça m'interesserai bigrement .
    -

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    ayé, super, j'ai réussi.
    Excusez mais je suis tellement content, ca fait que quelques jours que j'apprend Javascript et c'est dingue ce qu'on arrive a faire.
    Allez voir ma table : http://www.wincroc.fr
    cliquez par exemple sur la loupe de la premiere colonne.
    Dans le champs de saisi, tapez "bruno", au fur et a mesure, le bandeau de sélection va se positionner.

    Par contre maintenant, j'aimerai que lorsque l'utilisateur clique a l'exterieur du champs de saisi, revoir le LABEL et caché mon INPUT. Je n'y arrive pas

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    onblur ... tu fais l'inverse de ce que tu as fait pour l'afficher ...

    sinon

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    ca marche pas :
    voici ce que j'ai mis dans le code qui construit les colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Event.observe(champSaisie,"keyup",function(event) { This.evenementRechercheLoupe(event); });
    Event.observe(champSaisie,"onblur",function(event) { This.fermetureLoupe(event); });
    dans la methode :fermetureLoupe j'ai mis juste un alert("test") pour voir si je passais dedans et non , pourquoi ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    autant pour moi, c'est blur et non onblur avec prototype

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    http://www.wincroc.fr
    c'est bon, ca marche !

    il y a encore un probleme, a la creation de la table, je definis un % pour chaque colonne. Mais lors du remplissage, si le contenu est plus grand que la largeur de la colonne, celle-ci s'agrandie, comme empecher cela ?

    Sinon, que pensez vous de vous petit composant graphique ?

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    overflow sur les td et si ça marche par mets un div dans chaque td ...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    dans mon fichier CSS, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    .td{
    	border-right: 1px solid #3399CC;
    	border-left: 1px solid #3399CC;
    	border-top: 1px solid #3399CC;
    	border-bottom: 1px solid #3399CC;
    	overflow:hidden;
    }
    mais si je met 100 caractere dans la premiere colonne, celle-ci s'élargit au point d'arriver a la fin de la deuxieme colonne au niveau des entetes.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    j'ai beau faire des essais, je ne comprend pas pourquoi les colonnes s'élargissent.
    Pourtant regardez dans le code source, a chaque balise td, j'ai mis overflow:hidden.
    Regardez comme c'est moche : http://www.wincroc.fr

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    je n'ai toujours pas trouver et pourtant je cherche, je cherche !
    je n'avais vraiment pas d'idée ?

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    si tu mets 100 caractères il ne coupera pas le mot ...
    regarde du coté de text-wrap ?
    sinon un div dans chaque td, le css sur le td et le contenu dans le div ...

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    je ne trouve pas grand chose sur text-wrap !
    sinon, je pensais a un truc :
    Mettre dans chaque td, un textarea comme ca, il place mon texte dans une cellule multiligne automatiquement, normalement, je n'aurai plus le pb d'élargissement je pense. Et en plus, la prochaine etape est de pouvoir mettre ma table en saisi directement dans les cellules, comme ca, les champs seront deja présent.

    Maintenant, est plus logique de mettre des div dans les TD et de crée un champ textarea au clic sur une cellule au lieu de tous les créer avant ?

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    textearea ou div ... c'est ce que je te propose de faire depuis 3 posts ...

    et mieux vaut un div qu'un texteara pour deux raisons:

    1) c'est plus 3wcment correct
    2) le textarea est modifiable ...

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par SpaceFrog
    si tu mets 100 caractères il ne coupera pas le mot ...
    regarde du coté de text-wrap ?
    sinon un div dans chaque td, le css sur le td et le contenu dans le div ...
    j'ai placé des div dans chaque td.
    Je defini le width sur le td et pourtant la colonne s'elargit : http://www.wincroc.fr
    je ne comprend rien !

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    as tu defini le style du div avec width et overflow:hidden ou auto ?

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 165
    Points : 68
    Points
    68
    Par défaut
    j'ai vu où etait le probleme et c'est bizarre !
    a l'initialisation de ma page, tous mes script pour la contruction de la table sont appelés.
    La premiere methode, construit les blocs div avec la table des entetes de colonnes
    la seconde methode ajoute les lignes dans la table qui sert de corps.

    Dans la construction je definis la largeur de mes colonnes avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Element.setStyle(cellule,{"width":this.tailleTitresColonnes[i]});
    mais en debuggant je m'apercois qu'a la fin de cette methode ma table est sans aucun style CSS et width de définis reellement. et c'est seulement a la fin de tous les scripts que les colonnes se redimensionne et que les images du fichier CSS arrivent.....
    Alors pourquoi il faut attendre la chargement complet pour avoir les attributs de style ?
    Car j'ai remarqué que ma fonction permettant de recuperer la largeur de chaque colonne recupere la largeur avant l'attribut "width" donc pas bon.

    Je ne sais pas si je suis clair
    Avez vous une idée ?

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonObjet.style.width=this.tailleTitresColonnes[i];

  20. #20
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par SpaceFrog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonObjet.style.width=this.tailleTitresColonnes[i];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonObjet.style.width=this.tailleTitresColonnes[i]+"px";
    On met toujours les unités lorsque l'on spécifie une hauteur/largeur ou autre (font par exemple)

Discussions similaires

  1. [2008R2] Problème d'insertion sur table avec une unique colonne identity
    Par Kropernic dans le forum Développement
    Réponses: 12
    Dernier message: 04/10/2013, 08h16
  2. Réponses: 5
    Dernier message: 10/12/2012, 12h20
  3. lenteur sur table avec beaucoup de colonne
    Par ukanoldai dans le forum Oracle
    Réponses: 3
    Dernier message: 23/01/2007, 13h36
  4. [SQL Server 2005] Recherche sur colonne "Image"
    Par frechy dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/09/2006, 18h35
  5. créer TRIGGER sur 1 table avec liaison sur 2 autre table
    Par shaka84 dans le forum Développement
    Réponses: 2
    Dernier message: 11/04/2006, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo