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 :

datepicker jquery, sélection semaine [API HTML5]


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut datepicker jquery, sélection semaine
    Bonjour,
    je voudrais intégrer dans une page le datepicker de jquery-ui, sauf que j'aimerais que lorsque l'utilisateur choisit une date, que dans un input on retrouve la date de debut de la semaine correspondante et que dans un autre input on ait la fin.

    Quelqu'un pour m'aider?, merci bien

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Bonjour,

    Pour avoir la date de début, tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    onSelect: function(date){
             var jour = new Date(date);
                var jourSelect = jour.getDay();
                if(jourSelect == 0) {
                 jour.setDate(jour.getDate() - 6);
                }
              //et continuer en fonction des jours...
              $(this).val(jour);
    Et c'est le même principe pour la date de fin.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut datepicker jquery, selection semaine
    Merci nerf1912,

    cette fonction je devrais l'appeler comment pour qu'elle interagisse avec le datepicker?
    ma question est peut triviale mais je suis vraiment nouveau en javascript,

    du coup voila la gueule de mon script jusqu'ici

    $(function() {
    $( "#debsem" ).datepicker({
    dateFormat:"dd/mm/yy",
    showOn: "button",
    buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
    buttonImageOnly: true,
    altField: "#finsem",
    altFormat: "dd/mm/yy",

    });

    });

    merci d'avance

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Il te suffit de l'appeler comme les autres fonctions que tu as mis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    altFormat: "dd/mm/yy",
    onSelect: function(date){ 
                     ......
    }
    Et le code que je t'ai donné n'est pas complet, ce n'est qu'un début pour te guider.

    Doc sur Datepicker

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut datepicker jquery, selection semaine
    Merci beaucoup,

    j'essaye et je te fais un retour des que je termine

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut datepicker jquery, selection semaine
    rebonjour,

    j'ai adpaté ma function comme si dessous, et effectivement je réussis à avoir la date de début de chaque semaine, maintenant j'aimerais que dans un champs alternatif, la date de fin de semaine puisse etre calculée en fonction de la nouvelle date, mais il récupere toujours la date qui a été choisie dans le datepicker.

    code javascript:
    $(function() {
    $( "#debsem" ).datepicker({
    showOn: "button",
    buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
    buttonImageOnly: true,
    altField: "#finsem",
    altFormat: "dd/mm/yy",
    onSelect: function(date){
    var jour = new Date(date);
    var jourSelect = jour.getDay();
    if(jourSelect == 2) {

    jour.setDate(jour.getDate() - 1);
    }else if(jourSelect == 3) {

    jour.setDate(jour.getDate() - 2);
    }else if(jourSelect == 4) {

    jour.setDate(jour.getDate() - 3);
    }else if(jourSelect == 5) {

    jour.setDate(jour.getDate() - 4);
    }else if(jourSelect == 6) {

    jour.setDate(jour.getDate() - 5);
    }else if(jourSelect == 0) {

    jour.setDate(jour.getDate() - 6);
    }
    else{
    jour.setDate(jour.getDate());
    }
    day=jour.getDate();
    month=jour.getMonth()+1;
    year=jour.getFullYear();
    jour =day + "/" + month + "/" + year;
    $(this).val(jour);
    }
    });

    });

    code html:

    <label for="debsem">Semaine du: </label><input type="text" disabled id="debsem">&nbsp; <label for="finsem">Au: &nbsp;</label><input type="text" disabled id="finsem" size="30">

    Merci

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Good!

    Tu peux optimiser ton code en mettant quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    après avoir fait jourSelect==0 et le cas jourSelect == 1
     
    else if(jourSelect>0 && jourSelect!=1) {
                  jour.setDate(jour.getDate() - (jourSelect - 1));
                }
    Ce qui évite les conditions à répétition.

    Ensuite pour être sûr d'avoir bien compris, tu veux faire la même chose mais avec la date de fin de semaine? Par exemple pour cette semaine, je sélectionne le 12/08. Ca doit m'afficher 11/08 dans un input et 15/08 dans le second?

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut datepicker jquery, selection semaine
    exactement tu a compris,

    mais en fait je prend les semaines de lundi à dimanche, donc si tu choisit le 12/08 tu devrait avoir dans un champs 11/08 et dans l'autre 17/08 en gros,

    merci pour l'optimisation

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    D'accord. Et bien c'est le même principe mais dans l'autre sens.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(jourSelect == 0) {
                 jour.setDate(jour.getDate() + 6); //sens inverse, si c'est lundi ben on va au dimanche
                }
    else if(jourSelect == 6) { //si c'est dimanche, ben on y reste
                 jour.setDate(jour.getDate());  
                }
    ....
    Et tu continues... soit avec le bout de code optimisé que je t'ai donné (mais en sens inverse), soit avec ta technique

  10. #10
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut datepicker jquery, selection semaine
    excuse moi, je suppose que je dois modifier l'option altField de cette maniere:

    altField: function(date){
    var jour = new Date(date);
    var jourSelect = jour.getDay();
    if(jourSelect == 6) {
    jour.setDate(jour.getDate());
    }
    $("#finsem").val(date);
    },
    altFormat: "dd/mm/yy"

    mais je suppose qu'il y'a quelque chose qui cloche car je NaN comme résultat dans le champs finsem

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Il ne faut pas utiliser un seul altField pour tes deux dates de début et de fin. Il faut bien les séparer.
    Tu es dans un nouveau datepicker là?

  12. #12
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut
    non, en fait je les ai mis dans le même datepicker, en fait j'aurais voulu qu'on n'ait plus à sélectionner la date de fin de semaine, mais que cela soit fait automatiquement une fois que la date de debut de semaine a été calculée

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Tu peux le faire de différentes manières.
    Regarde quels événements peuvent être utiles, qui une fois déclenchés sur ton premier input rempli, exécuteraient tes fonctions datepicker.

  14. #14
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut
    Merci beaucoup nef1912 pour ton aide,

    je m'en suis finalement sortit en sortant le deuxieme datepicker.

    pour ceux que ca pourrait aider, voila la fonction finale.

    $(function() {
    $( "#debsem" ).datepicker({
    showOn: "button",
    buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
    buttonImageOnly: true,
    onSelect: function(date){
    var jour = new Date(date);
    var jourSelect = jour.getDay();

    if(jourSelect == 0) {

    jour.setDate(jour.getDate() - 6);
    }else if(jourSelect>0 && jourSelect!=1) {

    jour.setDate(jour.getDate() - (jourSelect - 1));
    }else{
    jour.setDate(jour.getDate());
    }
    jour =jour.getDate() + "/" + (jour.getMonth()+1) + "/" + jour.getFullYear();
    $(this).val(jour);

    var fin = $.datepicker.parseDate('dd/mm/yy', jour);
    fin.setDate(fin.getDate() + 6);
    fin =fin.getDate() + "/" + (fin.getMonth()+1) + "/" + fin.getFullYear();
    $('#finsem').datepicker('setDate', fin);
    }
    });

    $('#finsem').datepicker({
    dateFormat: "dd/mm/yy"
    });
    });

    je ne sais pas si c'est optimisé mais ca marche tout de mem

    merci encore nef

  15. #15
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 19
    Par défaut
    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
     
    $(function() {
    	$( "#debsem" ).datepicker({
    		showOn: "button",
    		buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
    		buttonImageOnly: true,
    		onSelect: function(date){
    			var jour = new Date(date);
    			var jourSelect = jour.getDay();
     
    			if(jourSelect == 0) {
     
    				jour.setDate(jour.getDate() - 6);
    			}else if(jourSelect>0 && jourSelect!=1) {
     
    				jour.setDate(jour.getDate() - (jourSelect - 1));
    			}else{
    				jour.setDate(jour.getDate());
    			}
    			jour =jour.getDate() + "/" + (jour.getMonth()+1) + "/" + jour.getFullYear();
    			 $(this).val(jour);
     
    			 var fin = $.datepicker.parseDate('dd/mm/yy', jour);
    		        fin.setDate(fin.getDate() + 6); 
    				fin =fin.getDate() + "/" + (fin.getMonth()+1) + "/" + fin.getFullYear();
    		        $('#finsem').datepicker('setDate', fin);
    		}
    	});
     
    	$('#finsem').datepicker({
    		dateFormat: "dd/mm/yy"
    	});
    });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Datepicker Jquery et affichage flèche
    Par totot dans le forum jQuery
    Réponses: 2
    Dernier message: 12/02/2014, 22h01
  2. Réponses: 3
    Dernier message: 05/07/2013, 18h19
  3. [UI] Datepicker Jquery, génération de nouveaux champs
    Par Kakon dans le forum jQuery
    Réponses: 8
    Dernier message: 09/08/2012, 03h58
  4. [jQuery] sélection d'une liste imbriqué
    Par Spir dans le forum jQuery
    Réponses: 4
    Dernier message: 25/11/2008, 12h23

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