Colonnes tableau dynamiques help !! [Résolu]

Signaler
Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
-
Messages postés
33019
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 juin 2021
-
Bonjour,

Je m'explique j'ai une liste déroulante qui contient le nombre des semaines. L'utilisateur doit pouvoir choisir une semaine de début dans cette liste et choisir une semaine de fin dans une deuxième liste déroulante.
par exemple si le user sélectionne S1 comme début de semaine et S10 comme fin de semaine je veux voir apparaître comme réponse un tableau avec 10 colonnes. s'il sélectionnes un intervalle de 4 semaines, un tableau de 4 colonnes et ainsi de suite... en gros un tableau avec des colonnes dynamiques.
ça fait longtemps que je cherche aidez moi svp à trouver une piste pour répondre à ce problème.

7 réponses

Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
Je rajoute qu j'utilise une page jsp pour l'affichage
Messages postés
33019
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 juin 2021
351
Bonjour,

Et quel est le souci exactement ?

On manque d'infos...
Par exemple, sous quel "format" selectionne t'il la semaine ?

Il serait bien de nous montrer ton code....
Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
Merci jordane pour ta réponse,

J'ai deux listes déroulantes alimentées par une requête SQL qui me retourne les numéros de semaines sous cette forme : S1, S2 , S3...
Je veux quand le user sélectionne S1 dans la première et S10 dans la deuxième liste déroulante
que je puisse voir en résultat un tableau avec dix colonnes. c'est cette partie là que j'arrive pas à faire : rendre les colonnes de mon tableau dynamiques en fonction du nombre des semaines.
Messages postés
33019
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 juin 2021
351
Et donc...
Ton souci c'est le calcul du DELTA entre tes semaines ou
comment créer ton tableau ?
Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
Je n'arrive pas à créer mon tableau dont les colonnes rapportent les semaines choisies
Messages postés
33019
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 juin 2021
351
Et quel code as tu essayé pour créer ce tableau ?

Pour rappel:

Merci de garder à l'esprit que CodeS-SourceS est une communauté d'entraide.

Toutes les réponses sur le forum sont assurées par des bénévoles
qui donnent de leur temps libre pour aider à résoudre les problèmes.

A noter également que nous ne faisons pas dans le "tout cuit" et ne sommes pas là pour remplacer votre moteur de recherches...
... Soit tu trouves ton bonheur dans la partie source du site, soit à l'aide de ton moteur de recherche favori.

Ici, nous aidons volontiers sur des sujets techniques précis.

Je t'invite à lire avec attention le contenu du lien suivant :
charte-de-commentcamarche-net : conseils-d-ecriture

Ainsi que celui concernant l'utilisation de la coloration syntaxique :
Utilisation des Balises de code

Merci donc de reformuler ta demande en respectant ces quelques points.

Quelques points essentiels à retenir :
- On ne pose qu' UNE question par discussion
- Le titre de la question doit refléter le souci rencontré ( Help.. SOS.. Urgent.. n'apporte aucune information utile !)
- Lorsque votre question est résolue.. merci de clore le sujet (lien Marquer comme résolu se trouvant sous le titre de votre question).
- Une question obtiendra de meilleurs réponses si elle est correctement rédigée, que les explications sont clairs et qu'éventuellement vous postez le code qui pose problème.
- Si vous avez un message d'erreur..... MARQUEZ LE (dans son intégralité).

Merci.

Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
Voici mon code, ceci est mon script :
 <bold><script src="//code.jquery.com/jquery-1.10.2.js"></script>
 <script type="text/javascript">
        $(function () {
            
         $( "select" )
           .change(function () {
             var str = "";
             $( "select option:selected" ).each(function() {
               str += $( this ).text() + " ";
             });
            
              $("#container").append("<th><td "+str+"=\""+$(this).data("nom")+"\">"+$(this).data("nom")+"</td><th>")
           
           .change();
   
            });
        });
        </script></bold>

et voici mes deux listes et mon tableau "container" :
<select id="liste1">
      
  <option>S1</option>
  <option>S2</option>
  <option>S3</option>
      
  </select>
  
  <select id="liste2">
      
  <option>S4</option>
  <option>S5</option>
  <option>S6</option>
  <option>S7</option>
      
  </select>
        <div>
        <table id="container">
        <thead>
        <tr><th id="col1"></th><th id="col2"></th></tr>
        </thead>
        </table>
        </div>
Messages postés
33019
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 juin 2021
351
bon,
déjà... pour commencer .. dans tes listes ( les SELECT) ajoute une VALUE dans tes balises OPTION..

du style :
<select id="liste1">
  <option value=1>S1</option>
  <option value=2>S2</option>
  <option value=3>S3</option>
...
</select>




Ensuite, dans ton script JS... tu récupère la value selectionnée de tes deux listes.
Tu fais une soustraction pour en connaitre le "delta".
Tu boucle de 1 à ce nombre pour créer tes colonnes...



PS : Pas besoin de balises TD dans des TH .....
TH c'est la même chose que TD .. sauf que c'est pour les entêtes de tableau ( H => HEADER)
Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
J'ai changé mon script. J'arrive à récupérer le numéro de ma semaine du début et la semaine de la fin comme ceci :

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(function () {

$("#liste1")
.change(function () {
var str = "";
$( "#liste1 option:selected" ).each(function(){
str += $( this ).text() + " ";
});

$("#container").append("<th>"+str+"<th>")

.change();

});


$("#liste2")
.change(function () {
var str = "";
$( "#liste2 option:selected" ).each(function(){
str += $( this ).text() + " ";
});

$("#container").append("<th>"+str+"<th>")

.change();

});
});

Ce qui me reste à faire c'est de récupérer le delta entre la semaine de début et celle de fin et les rapporter dans mon tableau.
Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
Mercii de m'avoir aiguillé j'étais perdue grâce à toi j'ai réussi enfin à avoir mes colonnes dynamiques ^^

<script type="text/javascript">
$(function () {

$("#liste1")
.change(function () {
var str1 = "";
$( "#liste1 option:selected" ).each(function(){
str1 += $( this ).text() + " ";

});

$("#container").append("<th>"+str1+"<th>")

.change();

});


$("#liste2")
.change(function () {
var str2 = "";
$( "#liste2 option:selected" ).each(function(){
str2 += $( this ).text() + " ";
str2=str2.match(/\d+/g);//pour récupérer que le chiffre
});

var str1= $( "#liste1 option:selected" ).val();
str1=str1.match(/\d+/g);//pour récupérer que le chiffre


var diff= str2 -str1; //je calcule le delta

for (var i=0; i<=diff;i++){ //je boucle

$("#container").append("<th>"+str2+"<th>")



.change();

}

});
});

</script>


Juste une dernière chose, as-tu une idée pour récupérer le libellé des colonnes ?
Messages postés
19
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
3 juillet 2014
1
C'est bon ! j'arrive à faire ce que je veux.
Voici mon code ( pas trop optimisé mais bon) pour les intéressé(e)s
et merci encore une fois jordane

<script type="text/javascript">
$(function () {

$("#liste2")
.change(function () {
var str2 = "";
$( "#liste2 option:selected" ).each(function(){
str2 += $( this ).text() + " ";
str2=str2.match(/\d+/g);//pour récupérer que le chiffre
});

var str1= $( "#liste1 option:selected" ).val();
str1=str1.match(/\d+/g);//pour récupérer que le chiffre


var diff= str2-str1; //je calcule le delta

for (var i=str1; i<=diff+2;i++){ //je boucle

$("#container").append("<th>S"+i+"<th>")

.change();

}

});
});

</script>

Messages postés
33019
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 juin 2021
351
Y'a pas de quoi ^^

Par contre :

Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane