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 :

script selection tableau


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 62
    Points
    62
    Par défaut script selection tableau
    Bonjour,

    J'ai un problème dans mon script, je voudrais savoir si quelqu'un peut m'aider à le résoudre. Mon problème est le suivant : Dans une interface j'ai un ou plusieurs tableaux que je peux sélectionner avec ma souris et effectuer des manipulations tel que supprimer des colonnes sur le tableau sélectionné.
    Ce que je voudrais faire c'est pouvoir redimensionner mes colonnes en selectionnant le tableau pour lequel je souhaite faire cette modif. J'arrive à effectuer le redimensionnement de colonnes mais que pour le premier tableau pas pour les autres. Je mets mon script ci-dessous, en espérant que quelqu'un pourra m'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function defLargeurColonne(idCol, largeur){
    if (document.selection.type == 'Control')
       {
         range=document.selection.createRange();
         if (range.length == 1 && (range(0).tagName == 'TABLE' || range(0).tagName == 'table'))
         { 
    	   var oldId=range(0).id;
    	   range(0).id="tableNow"; 
    	  var tbl = document.getElementById('tableNow');
    	 }
       }
       window.opener.document.getElementById(idCol).width = largeur;    
    }

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par Jarod51
    J'arrive à effectuer le redimensionnement de colonnes mais que pour le premier tableau pas pour les autres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	   range(0).id="tableNow"; 
    	  var tbl = document.getElementById('tableNow');
    Si "tableNow" est l'ID de ton 1° tableau, ça semble normal ...
    Sinon, où est la référence au tableau courrant ?

    A quoi sert ton "tbl" : il n'est pas réutilisé ?

    A+

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 62
    Points
    62
    Par défaut
    Salut,

    Merci pour ta réponse. En fait, il n'y a pas de réference de tableau courant, ce qu'il se passe, c'est que dès que je sélectionne un talbeau dans mon appli WYSIWYG je lui affecte l'id tableNow :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (document.selection.type == 'Control')
       {
         range=document.selection.createRange();
         if (range.length == 1 && (range(0).tagName == 'TABLE' || range(0).tagName == 'table'))
         { 
    	   var oldId=range(0).id;
    	   range(0).id="tableNow"; 
    	  var tbl = document.getElementById('tableNow');
    	 }
       }
    C'est que la référence tbl je ne l'utilise pas dans mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.opener.document.getElementById(idCol).width = largeur;
    J'ai essayé t'intégrer tbl sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.opener.document.getElementById(idCol).width = largeur;
    Mais ça me génére une erreur à chaque fois, du coup j'arrive pas à trouver comment utiliser cette référence pour le tableau cours de sélection pour modifier les colonnes. Je sais pas si mes explications claires;
    Je mets le source qui marche pour supprimer une colonne d'un tableau en cours de sélection, peut être que ça sera plus parlant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function SuppColonne() {
     
    if (document.selection.type == 'Control')
       {
         range=document.selection.createRange();
         if (range.length == 1 && (range(0).tagName == 'TABLE' || range(0).tagName == 'table'))
         { 
    	   var oldId=range(0).id;
    	   range(0).id="tableNow"; 
    	   var tbl = document.getElementById('tableNow');
    	 }
       }
     
        var row = tbl.rows.item(0);
     
    for (l=0;l<tbl.rows.length;l++)
    		{
     
    			tbl.rows[l].deleteCell(3);
    		}
     
    }
    @+

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par Jarod51
    En fait, il n'y a pas de réference de tableau courant, ce qu'il se passe, c'est que dès que je sélectionne un talbeau dans mon appli WYSIWYG je lui affecte l'id tableNow
    c'est là le problème : tu affectes cet ID au 1° tableau, ce qui fonctionne.
    Puis tu passes au 2° tableau en lui affectant le même ID. Or un ID doit être unique, ce qui n'est dès lors plus le cas ==>

    Il vaudrait mieux, dès la sélection d'un tableau, récupérer son id dans une variable globale.
    Tu peux ensuite réutiliser cette variable pour faire référence au tableau courant, dans n'importe quel script.

    Par contre, pas sûr que ça soit nécessaire : ton redimensionnement se fait en accédant directement à la colonne via son ID : dans ce script, tu n'as (a priori) pas besoin de savoir dans quel tableau elle se trouve ...

    A+

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 62
    Points
    62
    Par défaut
    Ok merci pour les precisions. Par contre, mon tableau je le génere de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function insertTable2(cols, rows, border, cellspace, cellpad, alignment, width){
    var icols = 0;
    var irows = 0;
     
    if(!rows)
    rows = 1;
    if(!cols)
    cols = 1;
    if(!border)
    border = 0;
    if(!cellpad)
    cellpad = 0;
    if(!cellspace)
    cellspace = 0;
    if(!alignment)
    alignment = "left";
    if(!width)
    width = "90%"
     
    var oneRowBlock = "";
    var tableBlock = "";
    var titreBlock = "";
     
    // barre de titre
    titreBlock +=  "<tr>"
    while(icols < cols){
    titreBlock += "<td id=\"" + icols + "\">&nbsp;</td>";
    icols++;
    }
    titreBlock += "</tr>\n"
     
    icols = 0;
    while(icols < cols){
    oneRowBlock += "<td>&nbsp;</td>";
    icols++;
    }
    oneRowBlock="<tr>" + oneRowBlock + "</tr>\n";
     
    tableBlock = "<table align=\"" + alignment + "\" width=\"" + width + "\" cellspacing=\"" + cellspace + "\" cellpadding=\"" + cellpad + "\" border=\"" + border + "\">\n" + titreBlock;
    while(irows < rows){
    tableBlock += oneRowBlock;
    irows++;
     
    } insertHTML(tableBlock);
    }
    Du coup j'affecte à chaque fois le même id. Donc je sais plus trop. Mon problème est assez complexe. Merci encore pour l'aide.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableBlock = "<table id=\"" + un_id_généré_en_dynamique + "\" align=\"" + alignment + "\" width=......
    Mais ... ça fonctionne même sans "</table>" après ta dernière boucle ?

    A+

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Oui ça fonctionne puisque ça m'insère bien un tableau dans mon interface WYSIWYG et la balise </table> est bien générée dans le code HTML de l'interface.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Jarod1980
    Oui ça fonctionne puisque ça m'insère bien un tableau dans mon interface WYSIWYG et la balise </table> est bien générée dans le code HTML de l'interface.
    C'était une remarque secondaire.

    Ca fonctionne avec l'id "dynamique" (mon dernier post) ?

Discussions similaires

  1. script tri tableau sur plusieur niveau
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 29/10/2013, 22h32
  2. [Twig] Select + tableau + variable
    Par ch0c4 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 15/04/2013, 11h14
  3. Script Bash - Tableau de tableau
    Par pachalcs dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 04/11/2012, 15h35
  4. recuperer select tableau
    Par jeepibmx dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/08/2008, 16h30
  5. [VBA-E] récupération selection tableau dans variable
    Par garsdu51 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/02/2007, 08h04

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